#-*- coding:utf-8 -*-
#author=guoff
#date  14:22
#!/usr/bin/env python

'''
优化点：
1、数据覆盖问题避免
2、关键词特殊字符剔除优化
3、doc文件过滤
todolist
第一步：抓取  性别 年龄 学校 专业 所有工作经历的公司名字、职位名字进行搜索，如果唯一就完事儿，如果不行，执行第二步
第二部：再抓取一段工作经历的岗位职责
这两步基本上可以解决绝大部分的问题了
然后，如果这两步都没解决问题，直接打开文件，手工处理，保存，系统执行移动文件，继续处理接下来的
优化后：
第一步：抓取  性别 年龄 学校 专业 所有工作经历的公司名字、职位名字进行搜索，如果唯一就完事儿，如果有大于1条记录，则执行第二步
第二步：再抓取一段工作经历的岗位职责进行搜索
如果这两步都没解决问题，挪到失败文件夹下，待手工处理，继续处理接下来的

格式问题：
搜索同事 同行没有单位信息，所以无法解析
andy CV-x.docx
andy李女士.docx


* 目录选择，目录下初始化 处理后 失败 俩文件夹
*
python3.6
pyinstaller -F -w alldata.py
pyinstaller -F -w -i Bookmark.ico getDocWebInfo.py

D:\do\phpStudy\SQL-Front\Skins\Zara
pip install bs4
'''
import time
import xml.sax.handler
import datetime
import gzip
import json
import os, sys
import ssl
import threading
import shutil

# import xlwt


if sys.version_info[0] == 2:
    from Tkinter import *
    from ttk import *
    #Usage:showinfo/warning/error,askquestion/okcancel/yesno/retrycancel
    from tkMessageBox import *
    #Usage:f=tkFileDialog.askopenfilename(initialdir='E:/Python')
    #import tkFileDialog
    #import tkSimpleDialog
else:  #Python 3.x
    from tkinter import *
    from tkinter.ttk import *
    from tkinter.messagebox import *
    from tkinter import StringVar, IntVar, scrolledtext
    #import tkinter.filedialog as tkFileDialog
    #import tkinter.simpledialog as tkSimpleDialog    #askstring()


class XMLHandler(xml.sax.handler.ContentHandler):
    def __init__(self):
        self.buffer = ""
        self.mapping = {}

    def startElement(self, name, attributes):
        self.buffer = ""

    def characters(self, data):
        self.buffer += data

    def endElement(self, name):
        self.mapping[name] = self.buffer

    def getDict(self):
        return self.mapping
def thread_it(func, *args):
    '''将函数打包进线程'''
    # 创建
    t = threading.Thread(target=func, args=args)
    # 守护 !!!
    t.setDaemon(True)
    # 启动
    t.start()
    # 阻塞--卡死界面！
    # t.join()

class Application_ui(Frame):
    #这个类仅实现界面生成功能，具体事件处理代码在子类Application中。
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.master.title('旋风助手--正式版--guoff.taobao.com')
        self.master.geometry('439x339')
        self.createWidgets()
        self.gdata = []
        self.galldata = []
        self.gallformatdata = []
        self.gdata_1 = []
        self.galldata_1 = []
        self.gallformatdata_1 = []
        self.gallformatdata_2 = []
        self.gallformatdata_3 = []
        self.gallformatdata_4 = []
        self.gallformatdata_5 = []
        self.gallformatdata_6 = []
        self.gallformatdata_7 = []
        self.gallformatdata_8 = []
        self.gallformatdata_9 = []
        self.gallformatdata_10 = []
        self.header = {}
        self.needlist = []
        self.hadlist = []
        self.errlist = []
        self.filepath=''

    def printinfo(self,info,a):
        b = datetime.datetime.now()
        k=b-a
        self.text1.insert(INSERT, info+'\t耗时：'+str(k.total_seconds()) + '\n')
        self.text1.see(END)
    def dozhuanhuan(self):
        # self.filepath=askdirectory()
        self.text1.insert(INSERT, '格式转换路径为：'+self.filepath + '\n')
        i=0
        for root, dirs, files in os.walk(self.filepath):
            i=i+1
            if i==1:
                filelist =[]
                for fil in files:
                    if os.path.splitext(fil)[1] == ".docx":
                        filelist.append(fil)
                    if os.path.splitext(fil)[1] == ".doc":
                        print('fil',fil)
                        # 后台抓取
                        t = threading.Thread(target=self.doc_to_docx, args=(self.filepath,fil,filelist))
                        # t.setDaemon(True)
                        t.start()
                        print('线程启动了')
                        # t.join()
                        # filepath1 = self.doc_to_docx(self.filepath,fil)
                        # filelist.append(filepath1)
    def checkpath(self):
        warningflag = 0
        i=0
        for root, dirs, files in os.walk(self.filepath):
            i=i+1
            if i==1:
                filelist =[]
                for fil in files:
                    if os.path.splitext(fil)[1] == ".docx":
                        filelist.append(fil)
                    if os.path.splitext(fil)[1] == ".doc":
                        print('fil',fil)
                        warningflag = 1
        if warningflag == 0 :
            showinfo('Yes', 'doc格式文件转换完毕，请查验后，再执行')
    def selectpath(self):
        print('1212')
    def gethtmldata(self,page=1):
        '''
        :param page:
        :return:
        1、获取路径下所有docx文件
        2、新建succ和err文件
        '''
        if not self.filepath:
            showinfo('No', '请先选择简历目录')
            return False
        self.text1.insert(INSERT, '执行路径为：' + self.filepath + '\n')
        i = 0
        for root, dirs, files in os.walk(self.filepath):
            i = i + 1
            if i == 1:
                filelist = []
                for fil in files:
                    if os.path.splitext(fil)[1] == ".docx":
                        filelist.append(fil)
                    if os.path.splitext(fil)[1] == ".doc":
                        print('fil', fil)
                        showinfo('No', '文件还有doc格式，请先点击格式转换')
                        return False
                        # filepath1 = self.doc_to_docx(self.filepath,fil)
                        # filelist.append(filepath1)

                        # shutil.move(os.path.join(fileinfo['path'], fileinfo['file']),
                        #             os.path.join(fileinfo['err'], fileinfo['file']))
                self.needlist = filelist
                self.hadlist = []
                self.errlist = []
                print('len(dirs)', len(dirs))
                self.succpath = os.path.join(self.filepath, '处理后')
                self.errpath = os.path.join(self.filepath, '失败')
                if not os.path.exists(self.succpath):
                    os.mkdir(self.succpath)
                if not os.path.exists(self.errpath):
                    os.mkdir(self.errpath)
                if len(dirs) < 2:
                    print('文件夹不全，新建')
            if i != 1 and '处理后' in root:
                self.hadlist = files
            if i != 1 and '失败' in root:
                self.errlist = files

        self.prcesstext.set('正在判断是否执行')
        # self.printinfo('待处理:', str(self.needlist))
        import datetime
        end_date = datetime.datetime.strptime("2099-08-20", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        if begin_date <= end_date:

            fileslist=list(set(self.needlist).difference(set(self.hadlist)).difference(set(self.errlist)))
            #处理当前目录和失败目录共有的文件
            doublelist = list(set(self.needlist).intersection(set(self.errlist)))
            for delfile in doublelist:
                os.remove(os.path.join(self.filepath,delfile))
            for file in fileslist:
                print('开始处理文件:',file)
                try:
                    #todo 解析文件获取数据 多文件并行，cook上限捕获提醒
                    fileinfo = {
                        'path':self.filepath,
                        'succ':self.succpath,
                        'err':self.errpath,
                        'file':file
                    }
                    print("self.fileinfo['path'], self.fileinfo['file'])",fileinfo['path'], fileinfo['file'])
                    a = datetime.datetime.now()
                    aa = getinfo(fileinfo, self.e1.get())

                    # aa.getdocxinfo(r'D:\do\201907\批量简历\简历\金-李超.docx')
                    # aa.getdocxinfo(r'D:\do\201907\批量简历\简历\前圆通汇报CIO(1)(1).docx')
                    # aa.getdocxinfo(r'D:\do\201907\批量简历\简历\王军.docx')
                    aa.getdocxinfo(self.printinfo)

                except Exception as e:
                    print('oops!解析出错!')
                    self.printinfo('异常:'+str(e), a)
                    print(e)
                    # shutil.move(os.path.join(fileinfo['path'], fileinfo['file']),os.path.join(fileinfo['err'], fileinfo['file']))
                    # doc.save(os.path.join(self.fileinfo['err'], self.fileinfo['file']))
                    # os.remove(os.path.join(self.fileinfo['path'], self.fileinfo['file']))
                    # aa.doexcept()
                finally:
                    print("执行完成文件：",file)

                self.printinfo('处理文件'+file, a)
                # fileslist.remove(file)
                time.sleep(1)

        else:
            showinfo('No', '试用期结束，请联系guoff.taobao.com')

    def pay(self, formorder='723_2855014',payAmount='15.50'):
        # 去支付
        if self.header == {}:
            self.header = {
                "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
                "Accept-Encoding": "gzip, deflate, br",
                "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
                "Cache-Control": "max-age=0",
                "Connection": "keep-alive",
                "Cookie": self.e1.get(),
                "Host": "xyq.cbg.163.com",
                "Referer": "https://xyq.cbg.163.com/equip?s=39&eid=201907241300113-39-WWRJJITIOSKCP&o&equip_refer=1",
                "Upgrade-Insecure-Requests": "1",
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"
            }
        a = datetime.datetime.now()
        collectUserCoin_url = "https://xyq.cbg.163.com/cgi-bin/usertrade.py?act=ajax_order_pay_info&jyfl6t61&orderid_to_epay=" + formorder + "&pay_loc=merge_pay"
        print('ko')

    def gethtmldata1(self,page=1):
        self.prcesstext_1.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_1))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        if begin_date <= end_date:
            ssl._create_default_https_context = ssl._create_unverified_context
            # url = "https://tieba.baidu.com"
            # html = getHtml(url)
            # imglist = getImg(html)
            # e9tkQRED2CBuh6Dpgxccxy_SCoPc-83ANdHlb8sTH5EhhcEWF15CnV-WpRDODmpTyaVjpmJUXapQitltE8XYNbjrUG9dxUDu-bSnM7A_11B6frztqwZw-3xVa1rKFZGN
            raw = {'gametype': '-1', 'start': '2017-01-01','end':''
                , 'pagesize': '50', 'pageindex': page,'username':'','agent':'' }
            print(raw)

        else:
            showinfo('No', '试用期结束，请联系guoff.taobao.com')


    def gethtmldata2(self,page=1):
        self.prcesstext_2.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_2))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        import time
        t = self.e3_2.get() #截至日期
        # 将其转换为时间数组
        timeStruct = time.strptime(t, "%Y-%m-%d")
        # 转换为时间戳:
        timeStamp = int(time.mktime(timeStruct))
        print(timeStamp)
        timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        print(timeStamp7)
        # timeStamp = 1511515800
        localTime = time.localtime(timeStamp7)
        strTime = time.strftime("%Y-%m-%d", localTime)
        print(strTime)
        if begin_date <= end_date:
            ssl._create_default_https_context = ssl._create_unverified_context
            # url = "https://tieba.baidu.com"
            # html = getHtml(url)
            # imglist = getImg(html)
            # e9tkQRED2CBuh6Dpgxccxy_SCoPc-83ANdHlb8sTH5EhhcEWF15CnV-WpRDODmpTyaVjpmJUXapQitltE8XYNbjrUG9dxUDu-bSnM7A_11B6frztqwZw-3xVa1rKFZGN
            '''
            mode: querydata
            QueryFromdate: 2019/01/10
            QueryFromtime: 00:00
            QueryTodate: 2019/01/17
            QueryTotime: 23:59
            QueryGameProvider: playngo
            QueryGameCategory: All
            QueryReportType: 0
            QueryUserName: c:\windows\system32\drivers\etc
            QueryPageCnt: 25
            QueryCustomer: 16
            QueryTicketNumber:
            '''
            raw = {'mode': 'querydata', 'QueryFromdate': strTime,'QueryFromtime':'00:00'
                , 'QueryTodate': t ,'QueryTotime':'23:59','QueryGameProvider':'All','QueryGameCategory':'All',
                   'QueryReportType':'1','QueryUserName':'','QueryPageCnt':'25', 'pageindex': page,'QueryCustomer':'16','QueryTicketNumber':'' }
            print(raw)
            data = parse.urlencode(raw).encode('utf-8')
            collectUserCoin_url = 'http://tigerking.oriental-game.com/Report/CustomerTransaction_RNG.aspx'
            header = {
                "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
                "Accept-Encoding": "gzip, deflate",
                "Accept-Language": "zh-CN,zh;q=0.9",
                "Cache-Control": "max-age=0",
                "Connection": "keep-alive",
                "Content-Length": "245",
                "Content-Type": "application/x-www-form-urlencoded",
                "Cookie": self.e2_2.get(),#"ASP.NET_SessionId=2osmemk5gn4mhfozaww0qcuc; AWSELB=494D8DA7081E6880C34B746E760460FF3B9125D47E7483C167E9144B5D1128A66E1A8DF2147F90A793950EBCE1632E2C3BE1E0619CCFB24EF0F20A5366B28A788F3B4B22B5",
                "Host": "tigerking.oriental-game.com",
                "Origin": "http://tigerking.oriental-game.com",
                "Referer": "http://tigerking.oriental-game.com/Report/CustomerTransaction_RNG.aspx",
                "Upgrade-Insecure-Requests": "1",
                "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
            }
            # print(collectUserCoin_url.split('\n')[0])
            # print(collectUserCoin_url)
            request = urllib.request.Request(collectUserCoin_url, data=data,headers=header)
            response = urllib.request.urlopen(request)
            # 自动记住cookie
            # cj = http.cookiejar.CookieJar()
            # opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
            # r = opener.open(request)
            # print(response.read().decode('utf-8', errors="replace"))
            # print(response.text)
            html = response.read()#.decode('utf-8', errors="replace")
            # html = b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x04\x00\xed\xbd\x07`\x1cI\x96%&/m\xca{\x7fJ\xf5J\xd7\xe0t\xa1\x08\x80`\x13$\xd8\x90@\x10\xec\xc1\x88\xcd\xe6\x92\xec\x1diG#)\xab*\x81\xcaeVe]f\x16@\xcc\xed\x9d\xbc\xf7\xde{\xef\xbd\xf7\xde{\xef\xbd\xf7\xba;\x9dN\'\xf7\xdf\xff?\\fd\x01l\xf6\xceJ\xda\xc9\x9e!\x80\xaa\xc8\x1f?~|\x1f?"\x1e\xff\xaeO\xbf<y\xf3\xfb\xbc<M\xe7\xed\xa2<\xfa\x8d\x93\xc7\xf6g\x9e\xcd\xe8gJ\xcf\xe3E\xdef\xd4\xa0]m\xe7\xbfh]\\~\xf6\xd1\xef\xbd\xfd\xd5\xf1\xf6I\xb5Xem1)\xf3\x8f\xd2i\xb5l\xf3e\xfb\xd9Gg\xa7\x9f\xe5\xb3\x8b\xfc\xa3\xc1WO\xa4\xe5\xf6\x9b\xeb\x95\xff^\x9b\xbfk\xef\xa2\xef\xc3\xe9<\xab\x9b\xbc\xfdl\xdd\x9eo\x1f|\x94\xde\r -\xb3E\xfe\xd9G\x97E~\xb5\xaa\xea\xd6{\xff\xaa\x98\xb5\xf3\xcff\xf9e1\xcd\xb7\xf9\x8fQZ,\x8b\xb6\xc8\xca\xedf\x9a\x95\xf9g\xbb\xa3t\x91\xbd+\x16\xeb\x85\xfb`\xdd\xe45\xff\x95\xd1(>[V^w\xcd\xb4.Vm\xda\xd4\xd3\xcf>\x1a\x8f\xef\xbe\xe6?\x9b\xbb?\xfd\x8b\xd6y}\xbd\xbd;\xde\xdd\x19\xef\x8d\x7f\xba\xf9\xe8\xe8\xf1]ij^\xfc]\xb7\xb7\x1f\x97\xc5\xf2mZ\xe7\xe5g\x1f\xcd\xab\x05\r\xb3\x98}\xf6\xd1\xf1jU\x16S"X\xb5|\x99\xb5\xf3\x8f\xd2y\x9d\x9f\x7f\xf6\xd1]\xafO\xf7ZA\x03\xfb(m\x89F\xf4\xfb"\xbb\xc8\xef\xbe\xdb\x96\xcf\xf4\xad\xf3\x8cFZ-\xc7\xf4\x0f\x00lo\x070\xa4\x11\xa1\xad\xd4\xbe{N?\xb7\xb3\xab\xbc!t\xc6\xd3\xa6\xf9=.?\xdb\xfdH\xbaj\xda\xeb2o\xe6yN\xe4\x94\x0ey.\xa8\x11\x00o\x84\xda\x14\x8bU\x99o\xd3\x979c\xd7|s\xa0\'U\xd56m\x9d\xad\xbe9\x90M\xd1\xe6\xfc\x8f\x82\xdc\xfb\x06@\xd2\x8c\xbe\x1d_\xd4\xc5La\xde\x02\xcd\x1b \xe6uNl{m\x7f\x01\xe0\x08P\x8b\x98e\xb7\x1e\xa8l\xb6(\x96%\x8d\x19\xa2\x9c\xd7cz\xf7\x96(\x12tb(\x86=\xad\x16\x0b\x02\x96\xcf\xd2j\xdd\xa6$\xef\xf3tY\xb5i\xfe\xaeh\xdabyA\xcd\x1c\x1e\xe9\xf3\xac\xcd\x9b\x96\x84r\xb1*Jz%[\xceR\xc2\xa18/\xe8\x8f\x93\xd7\xafS\xd7\x9cQ\xee\xe1!c\x80\xbah\x1e\xdd\xbdK\xe2:\x9d-\xc7\x96\x15\xf0\x07\xc1v\xbcq\xf7\xde\xf8\xde\xf8\x01Pv\x9f\x8d\xa9C\xa1YAh\xd3\xd4\xb4\xd7\xd4\xc7<\xbbw\xb0\xbf\xfd\xe4\'\x7f\x9f\xa2x}\xf6,\xff\xbdvg\x9f/\xbe\xf3\xea\xf8\xed\xf5t\xfd\xed\xe3o\xbf\xba\xb8\xb7\xf7\xe5\xe2\xab\xe9\xd5\xd5\x83jy\xef\xd5\xef3\xbb\xd8\xff\xc9\xec\x93\x97\x8b\xd7o\x9a\x1f\xdc\xfd\xbd>=\xb8\x9c\xccN\x7fz\xbe\xbf&}SWMS\xd5\xc5E\xb1\xfc\xec\xa3lY-\xaf\x17\xd5\xda\xcd\xa9h\x02Q\x1a\xef;\x8a\x9f\xee\x0e\x82\x94Kd\x0co\xa6\xf7\xcf~\xa2\x98\xec\xec=\xf8E\x97\xd7?\xfd\xfa\x8b\xf3o\xff\xf4\x97_d\xcf\xdf\x9e\xaf\xbf\xfb\x93\xef~\xea\xddW/\x97\'\xdf9~P\xee-N\xbe\xfb\xe2l\xf5\xf9\xc3\xc5\xe7\'O\x0f\xae>\x7fq6}\xf9\xf4\xc1\x9bw\xd9\xf0\x18b\x8aL>\x91\x01\x11k\x19-\xe8\x10%$\xdd\x8b4\xbd\xfc\x1a\r\xcfc\x9aY\xb5&\xed\x9a\xce\xf2i\x99\xd5\xac\xff\xa8\x9d\xf6\xd1\x16m\x99\x1f}\xf9yz\x0cfM\x9fd\xd3\xb791\xcd\xe3\xbb\xf2\x85\xb6\x12\xf0i\x99-/\xd6\xa4\x0b?\xfb\xe8\xa7\xb3\xcbL>\x0cx\xd7\xfb\x98^\xc5\x7f\xf46?\xe7\xeb\xe5\x14=\xa7\x17y\xfb\xa2\xbazS,\xf2\xad;\xe9/v\r\xf0\\fu\xda\xd27O\x89\x8d\xd3\xcf\xd2e~\x95\xe2\xd7\xad;\x87\x91v_\x90\x94\xcd\xa9\xd5\x96ycL\xa0\xf9C\x02\xfcI\xba{\'=J\x1f\xa6\xbf\xc7\x86\xef\x1f\xa5\x1f\xef|L\xbf\x0e\xb6\x88u\x8bv\xd4\xab\xff\n~\xd2\x1b\xd2]\xe4\x0b\xd3O\xff\xabX\x07\xdf\xae\xd6u\xd3\xe9\x81?#H\xfd.\xcc7\xb1>\xf4\xbbX\'_\x14\xcb5\xa9\x8aN7\xfa)\x81\xebw\xe4\xbe\x8bue\xbf\x8du\xf6:\x9fV\xcbY\xb73\xfd\x94\x00\xf6;s\xdf\xc5:\xb3\xdfv:\xab\xf3v]/m\xd3N\x7f\xcf\xd6e\xf9\xfb\xe4YM@?I?\xbe\xcb@y\xb2\xe9\x17\xfd\x13M\xe9\xe7\xc7\xf4\x1f\xfd\xc5\xe4\xa3_>~\xc4\x7f\xea\x10\xe9W\xfd@\xd1\xf0\x90\xf8%Q\x8e\x07\xaf\xbf\xce[\xea7\xc2\xee\xbf\xff\xb2\xba"D\t?+\x15\x1e@<he\xc6A-\xadP\xe0M\xb4\xc5\x7f\xd4\xcc>h\xbfn\xa7\xd44\xe0k\xc0\xfeA\xb5\xcc\xbf<?\'\xe7n\xeb\xce\x9d\xf4[\xe9\xf6nz7\xfdt\x87\x81\xd0\x9b\xf6\xf9\xdd\xc6\xd9Og\xef\xb6:\xe8\xe2Y\xd7\xe5\xa3\x14\x8a\xa8\xacH{\xfd\xfe\xd3y>}K\x9a2kV\xef~\x8f\x13\xfc\x81n>\xfb\x88\xc8\x03\xf4\xe8\xc7G\xbf\x90p\xe1\x0f\xe8\xe7(m\xd6\xd3)Y\xc1G\xa9\xa5\xceV\x9d7\xeb\xb2\xed\x11\xc7<\xbf\xdb\xd6G?\xae\xa4\xf9\xe8\xce\x18\x0e\xaay\x83\xd0\xa6\xef{\x0f\x8d\x0e\x8d\xabu\xbb\xf5\x11~a\xd2\x1f~4Jwwvvb/\xd1\xac\xd1\xbf\xf6\xf9%~\x1b\xfa\xce\xfdaq>\x99\x93"\xcc\x9f\xd3?\xd0\x86\xfd\x89-+q3\xc70\xa74\x11 \xd8\x17\x99\xa1\x93y\x8f\xa9\x82\xe1\x99\x0fh|\x97YI\xc8:h\xd4?\xfd\xcb\x8f\xed\x9d\xfcs\xea}u5\xebw\x8c\xb9\x07;]\x15\xcbYu5\xaeV\xf9r\xebc\xea\xfcx:\xad\xd6\xe4\x91\xe8\xcf\xd3Y\xd1\n.\x8bj\x96\x7f\xf6\x8b\x7f\xb1\x80|\xf9\xdd\xa7_\xd0\xdf\xbf\xe4\x97|<J?\x961\xa6/\xb3\xa6\xb9\xaa\xea\x19>j\xab\xaa\x9cd5\xb9\xe9#3B\xfc\xde\xb4Y\xbbn\xf0\x1b\xd9\x9c\xb56\xa09*~\xc0N\xfdu\xde\x8c\xc8&T%\xdem\xf8O\x0e\x0f>\xdb\xdf\xd9\x19\xcd\xf3\xe2b\xde~v\x9f~-\xf3\xf3\x96?k\xab\xd5g{;;\x1f\xfbt\xc0s5>\xaf\xa6\xebP\xecc\xf49\xad\xeb\xaa\xfe\xa2\xb9\xe8\x93\x87\x82\x8e\x9a\xb8\xe2_\xff\xa3\xfe\xb5\x7f\xfb\xdf\xf8\xb7\xfe\xa5\x7f\xe4o\xff\'\xff\xa9\xff\xf6\xa3\x9b\xa0=\xaf.\xbe$V\xea\xc12\x14\xf0\xe7\x98\xda\xea$\x7f\xd4\x87j\x8d4X\n\xff\xd1gdY\xe1|\xd1G\xf4;?\xe3\xa6\x98\xe5D\xa8m\xd02-\x8b4\xebv\xbc\xcaf38~\xa0\xd7\xa3\xf4\xde\xce\xea]\xd8\x97\xfb#\x845^\x10\x07\xde\x04nw\x13\xb8Y]\xad\xb6\x89\xaf\x96\x8f&\xf9yU\xe7]P\xb3\xa2Y\x95\xd9\xf5\xa3tB\xc4y\xeb\x81\xc1\xb3\xaa\xc8\xf3\'z=J\xb3IS\x95\xa4J;\rh\xda\x1f\xa5\xf7w~\xf7\xce\xc7\x8b\xac&\xa2n\xf3\xb7\xdb\xf7\x03\xec\xf0\x90\x175\'\xbc\xf7B\xbc\xf1\x90r\x86\x17N\xea\xea\xf7\xcdww\xf7\xfd\x19\xc1\xc3\x01\xd9y\xb6(JB\xf8\xe3\xcf\xcb\xeb\xd5\x9c#\xa8\xf4\xdbYyN\xce\xf1E\xf3q\xec\r\xe2\xea\xfc\x062]\xe5e\xd9%\xcd\x84D(\xaf\xb7\xeblV\xacI\xfbA\xe5\xd2\xa7\xf6\x91\xaf\xfb\x9f\xeb\xe4\x84_\x04\xbd\xe1\x91\x1e\xd7\xbdN\xf1L\xc8\xa1\xbb\xa8I\xe8g\x8f\xd2\x1f\xdf\xdd\xdd}\xb8;\xf3@\xe1\xe9\x81\xc3cA\x12\x07F\xa0\xe2q\x13JQ\x04\x89\xc2ewB\xcdSR\xa4\xb2\xcd|\xfe\x88B\x97\xe5P3;V\x107\x18\xb0y\xa2\x98\xe2\xf1\xb0\x1d\xdd\xd8\x82\xec\xde\xc0\x88\xf0L\xab\xb2\xa2\x89\xf8\xf1\xf3\xf3\xf3\x08\x06\xe6\xf1Ya/`\x05\xff\x19\xc4\x17\x8f\x87\xd1\xa3yu\x99\xd7\x03\x98\xe3\xe9\xb5\xdd<\x06<f\x1c\xf9\xc3\xfb\xb3\xbd{\x03\x08\xe2\xb95\x92q\x99\xef>\x01\xbf\xed\xef\xdc\xbf\x7f\x7f\x13\x1d\xf1L\xaa\xb6\xad\x16\xa4\x16\xd6muCS\x92O\x15\xe9\xae4w\x1f\xb1+\x8f\xd2\x83\xc1\xc91\x8f\xe8\xbd\xed\x88\x02\xe9>\xac\x82\xfa\n\xaa\xfb\x04\nk\xffF\xa8N\x8c\x06\xf4b\xf7Q\x8dw\x0br\xb1\x99\xbd\r\r~\xb0M\xfeB\xfe\x8e\x98\xf9\x86\x86\xa2\xa7\xac\x1a\xdbL\x8c[sVv\xde\x12K\xdf\xc4X\xd2\xb5L\xd7.i\x08"V1{O\x1e\x8bi\x15\xff\xb9=\x83\t\x1e\xdb\xbb\x0fn$\xee{O0s\xce&L\x89\xb0\xf4/\x1c\n(Ur\x1e([\xcc9&\xf9uR\xcd\xae9\xe1\xd9l?\xcd\x9a\xf9\xa4\xca\xea\xd9K\xb8\x97)\xc5\xffM\xf3\xd9G\xe7\xc5;\xca\x0cX\xe7\x80\xf2C\xe9\xbc*g\xdb\x94OX\n\xaeiC^\xfd\xf6\xa4\\\xe7\xe9<k\xb6\xc9\xa8\x93;\xbd\x9d_\x12m>J\xabeYe\x04\xdes\xae\xb9cB)\xe5\xac5M\xa6\xf6\x04\x97c[>B\x1bj\xc0\xcf\xe3\xcc4\xa00\xa2\n\xbe\xb9\x9b\xf9\x7f-\xb3K\xd3\x92~%l)\xff\x8c\x1fdN\xc8\xe2L!d\x94L\xabJ\xf2\xa5\xe9\x8b\xe2\x82>\xa4\x14\xad\x07\x01\xcf\xe3bqa\x13(\x9c\xcbm\x10\xbeT\xe3\xd5\xf2\xe2\xf7\xf8\xc9\xcf\x1e<@\xba\xedq\xb3\xca\x96L5\x13l\xa4L]Illgeq\xb1|\xc4\xa2w(\xaa\xf5jN\x89\xccC6\x04W\xa2l&D\xc3CR\xce\x84\x18\xe5\xbc\xe5\ra<\xce\xd0\x10\xfc.b\xb3\xa23\xbcm\xf2o\xa9=;l1\x04\xa64\x01y\xed\xd1\xdb\x7f\x1e\x9349h\x86R\xf4#\xde\x1c\x0fe\x01\xcd+p\xee\xe0\xdbqJ\x9e\xff\x11,\xe8]j\x18}\x18\x7fERt\xcd\xde\xa7P\xa3\x9b\xde\xc1#\xb4\xd6\x17}j~t\xf4\xcf\xff\x17\x7f\xdf\xbf\xf2\xaf\xff\xb3\x7f\xef_\xf9\xe8bg\xef\x1eq\x03ZRJ\xeb\xc9\xab\xaf\x0brJ1<\xfd\xb1\xaa\x90\xc8#\xca\x99\xe1\xce\x8b\xd9,_n\xbf\xa3\x14_\xb5\x9c"\x8bL\xefq\xc8\xc3\x81\x15\xa1\x92\xfe]\xff\xd8?\xfa\xef\xfd#\xff\xad\xe2\xf0C\xe8\x9e\xa2\x07\x8e4\xd0\xf7\xdf\xfeO\xfe\xad\xff\xeb\x8d=?\xbeK\x13\xb0\xe9{_\x96b\xcf\xbf\xfc\x17\xffk\xff\xf3\xbf\xfa?\xfe\xcb\xff\xda\xa3\xcd\xcd\x1e7y\x99O)\t\xe9\x8foR\x92\xa5\xa7\x01-yA\xc8\x86\xb0,B\xee/\x1a\x1c\x13\x95\x96\x9d\xf8\xa7\xf9\x86G\xb9\xb9W<\x8f\xab\x15$\x9a\xe2ZRE\xd43-\xda\x08.\xf9\xec\xe8\xef\xfb_\xfe\xb9\xff\xfc\xdf\xf8\x97\xfe\x85\x7f\xec\xf1]i\xf4\xfe\xe0rZ\xcd9:]^\x90\x83:\xbf%\x14\x9a\x13\xee\x7fC\xb3P\x85u\x1fOH\x8d\xc4\xdd(gx\x90\xd5M\xbf"\xa9LY\x83\xb9D\xfe\xd0\xe3\x896\x0bs_\x0b\x0f=\x8fWG*}\xab\x1bZ?\xbe[\x1675\x01\xde_\xd0\x00\xd3gUE"\xc0x\x0f\xbf\xf2\xf8\xee\x1a\x8b\x9f\xf4[\xef\xd1\xce\xfa_F\xde\xe9J\xc6\xe3\xbb\xa4\x06\xf5o1\x95ym\xfe\xcc`\x08\r\xa9\xd8`\xe1\x03R\x9d>\xadH\x04$\x1d\xa0\xed"M\xf0x\xb3\xab-\x06\'\xd7\x9b\x9f\x8c@_\xe6\xe48\x16\xc4\x90*d&\x96\xe6\x80)\xf6>\x9e\x8d\x02\xfe\xd8\xc2?\xcfR\x84\xb6\xdb\xcd*\xcfg\x15-\xe3\x82\x0f\x1e\xdf\x055\xa9]\xf4a\x85v\xf4\xaf\xff3\x7f\xef_I\x1c\x8f_\xe3M\xe3\xbc\xae3E\xbf\x05\x8f7\xe2\xf7\x1d\xa6\xaeK\x91\xfd\xd6\x0c\xd6]^\xae\xa0\xc0\x92\xd63\xaa\x9aS.\xbf\xc7\xf1\x9a\x92J;C@\xf0<.n5\xec\xbf\xfb\xdf\xfb\x87\xfe\xfb\x7f\xfd?\xfc\xe1\x0c\xfc\x1b\x1b\xf8\xee\x10\x10<\xb7\x1c\xf8?\xf8\xcf\xff\xc9\xbf\x1c\x83\xff\x7f\xe9\xd0_\xaf\'\xfa\xeb\x17\xd9\x92\x94 \x8f~\x08\x00\x9e[\x0e\xfbo\xfb\xdfi\xbe\xff\x99\xbf\xe7\x1f\xffY\x1b\xba/\xe0\x91\x96x\xdeS\x94g\xd5\x94\xd7\xfdb\x1d\x9bG\x06\xf77\xffU\x7f\xf379(\xa8sod\xfep\xfc){\x95\xaf\xaa\xba\xbd{\xc2\xeel^\xbfAd\x01*P\xbe\xb4;i\xbdI\x12\xbc\xff\xcd\xbf\xe4o\xff\xcb\xa3\xb8;|\x19\xc7\xb8%\x1c@\xd1\x7f\x08]m\x91\x11S\xd53\xc2\xcd\xc4\x12\x935y\xed\xf4\xd7,k3\x8a1..\xf0!\xb9=e\xb6j\xc8\xa9\x91Q\xfe\xb8\xf8\xead\xd2H\x16\xcd\xe8>J\xb3\xba\xc8\xb6\xf3w\x84\xf3,\'W\xe8<+\xf1\n\x7fJ\x13\xd7R\x07\xd4\xa3\x81u\xfa.[\xac\xca|\x08E<L\r\x83)\\\x06\x9a\xfb+b\xa3A\xfa\xf8\x8f\xa3U\xf7a\xdf]\xa1\x1al\xc4y\x8b\x0ek\x00\n\x1e\x1f\x12\x82\xfaMm\xf1\x90\x8d\xbc\xa1\x05\x1e\x7f\x02\x8d\xe2\xb8\t\xb2yhfe\x8a62\xe2\xef\xff\x9cd\xb2\xc7\x8d7==n\xbd\xe9\xe1\xf9;\xfa\xd7\xff\x8b\x7f\xea\x9f\xfdW\xff\x85\x7f\xf1\xef\xdc8[\xddgx\xf6\xfc\x87\xa5\xe0\x16\xcd\x88\xa0?;t|\x8do~X\x84\xfc\xd7\xfe\xd9\xbf\xe3o\xfc\x87\xfe\xa3\xff\xbf\x92\xf2\xd5\x8b\xcf\x7fX\x84\xfc\xdb\xff\xcb\x7f\xf3_\xfd\xff+\x19\x9fS\xd6%\xaf\xaf\x7fX\xa4\xfc[\xfe\x99\x7f\xe2o\xfe\x7f\x05\x19o\xe5Yu\x9f[\xd2\xf4\x84\xb2\x88\x9fg\x8b\x1f\x9a\xc6\xfc\'\xfe\xf3\x7f\xfc\x9f\xf8\xb9\xe3\xcfHL\xe9?\xdd\xf8\xd2\x7f\x86\xbe\x1b\xe8\x15\xd3g\x0c]\xe4k<\x91\x19z\x92\x95\xd9r\x9a\xf3\x04\x9d\xe7us\xe3\xac\xdc8\x0bB\xf5\xbf\xe3\x7f\xf8;\xfe\xa9\x7f\xf3\xaf\xf9{\xff\xde\xbf\xef\x9f\xfcG\xfe\xbe\x8d\x94\x8fS\xfa\x1b\x1d\xe3\xc9\xbcX5\xdf\xf8\x08\x8d\xdf\xf4\xf7\xfcu\xff\xaf\x18\xab\x11\xb5\xd7y}YL\xf3\xbb/I~\xf3Z\xa7\xf7\x9b\x1a\xf3\xdf\xf2_\xff\xcb\x7f\xe3\x9f\xfe\x7f\xfd\x11o\xfe\xa7\x17\xff\xc3/\xfd9\x1b\xa9\xce*rX\xc7\xacR\xbe\xa9\xd1\xfd\xbd\xff\xf1\xbf\xf67\xff-\xff\xf6\xbf\xf9+\xbf\xf9y|\x1f\xb5\x1a\x19\xea\x17\xe4\xef\xcf\xcb\x9b\xcd\xd0-\xc7\xf9\xaf\xfd#\x7f\xc7?\xf57\xffU\x7f\xd7\x7f\xf1\xff\xaa1\xc2$\xbc\xca\x9buy\xb3\x07x\xcba\xfe\x87\xdf\xfb\x93\xff\x97\xbf\xff\xf7\xf9\xbb\x7f\xf5\xdf\xf2_\xffk\x7f\xe87;T\xc3\xac\x1f:\xe6/?\x97_\xbe\xa9\x11\x7f\xf9y\n\x8d\xf4\r\x0e\x96\xa2\xf4\xd8\x80\x7f\xf1/.\x9a\xa72\xe8\x17\xf9\xd5\x97\x172\x8c_\xf2K\x86\xc6\x10\x19;\xde\xfb\x86\x87\xff\x8b\x7f1\x80Zd\xbe.\x19zy\x80\x8e\r\'\xb8\x92\xc3\xd5\xcf\x08\x14r\xb4\xe6/2\xda\x86^\x88\xd3i\xa1m\xfb\xaa\xceV+\xe4J\xa5\t\x9en\x1eX\x9b\xfaM\xf0\xd0*lY,\xdf\xa6u^R&\x18\xc4o\xe6yNk\xa7\xed\xf5\x8a\xe6\x01+zw\xa7\r-\xfe,\xf2Y\x91Q\x06\x82\xc2fG\xea\x9fnh\x011_\xce\xb2\xfa\xae\xf9\x85\xd7b\xc7\xfcJ[\xb4\x98\xcb\xabb\xb9\xf7\x96R\n\xe5l{\x17\x0b\x98\xb7\xee\xd2vs"\xb8\xe3SL\xebWg\xaf\xf1\x16:\xf9=~r\x97\xd3\x89\x8f\x9bi]\xach\xe1G\x17O_\xf3\x9f\xcd\xddi\xb5X\x90\xfe\xfeiNAI\x1b\xaf\xb5\xd7\xe1Og\x97\x99|J<\xa8@"\xa3\xfbpH%\xad+Yp\xdb?\x98\x13DZ\xda\xdd\xd9\xa3\x05\xb7yV7y\xfb\xd9G\x17\x93\xbd{\xbb{\x1f\xd8\x8f\xf9e\x9b@\xaeW\xd4K\x14\x9ey\xd1\xd0\xeb\xa7\x7f\xd1\x9a\xc2\x91\xed\xdd\xf1\xee\xcex\xef=_j\xb3I\x99\xaf(\xdbI\xaf\xef\x0c\xbd\x8b\xe1cY\xed\xb3\x8f|\xfc\xe3\xc3\xa2\xd7\x88C\xd3\xdfm\x8br\x88kZ\x9dh\xef\x8ckZ\x10\xb9\xde\x92\xcf\xf1\x9c\xaf\x97\xc2\xe5[w\xd2_\xec>\xc6\xf3\x13@\xea\r\x81\xa4\x15\xbc\xe0\x9bKZ\x9c\x7fI(\x9c ?\x9b~F\xf0?\xfa\xf1\xd7yi?\xfa\xe8\xce\x98\x96\xdd\xbao\xa1\xd5S\xca\xb2\xbd\xc1(\xa9\x89\x1d\xed\x16\xbe\xe1\xbf~\x7f\xfc\xf9\xd1\x9dQ\xba\xb5e\x81\xddI\xef\xa6\xbb;w\xd2o\xd1\xbf\xe9\'\xe9\xde\x88\x01\xb9\xe6\xb2\xd6\xf4\xd1\x9d^o\x1f\xffx\xd3fu;\x9f\xa7\xb2\xdc\xf7=\xc2\x89\x96\x02wv\xbe\xff\xf1\x9dq\xd6\xb6\xf5\xd6\xc7\xb2\xc0\x97\xcf>\x1e\xa5\xee\xf7!@\x8b\xc5\x87\x03"\x86\xea\xe2\xb3w\xefk\x81\xe9bs\xff\xe1\xfb\x81\xf96\xe9\xc3\xd7\xf3\xea\xeaM\xb1\xc8i\xee\xfc\xc9\xfa%\xf8]\xfe\xb2\xdc\xe1\xf1\x82\xcf&\xc5y\xca\xb3G\x10D\xa7\xbf!>\xa4\xb9%\x9c\xa8\xe1g\x9f}\x96~\xb4\xf3Q\xf0\x06\x1e\xbc\xc1\x00\x9ff\xd7\x8d\xb6\xfe\xf8\xdf\xfc\x1f\xfe\xfe\xff\xe3\x9f\xf8\x0f\xff\xb9\xff.@\xf4\x97\xa49\xe5To\xfd\xfe\xbd\xdd\xee\xfb\xf2+\xfd\x90_\xecx\xce\xabz\x91\xb5\xc4\x8e\xf9\x16e~\xf3\x00E\xb0\xf7\x8c\xd8z\x99_\xa5\xae\xc5\xc85\xc0CJ\xb1\x9dS\xa3\x8f?&\xa6\xdc\x9a\x8d/\xf2\x96}@\x1a\xf6\'\xe9n\xb7\xf5,\xbb6m\xb9)\x83\xed6\xba\xce\xa9\xe3\xcf\xa4\xc1\xb3uY\xfe>\xf47\xcf\x8bk\x06zs\xcfc\xd2M\x17\x84\xc0\xe3t\xef\x8e\xc3e\x07\x1d\xf0_\xf4\x165\xe7\x07\xefP\xff\xc1\x1b\xf4\xb7mO\xbfSk\xd7\xbe&uW/\xd3\xef\x01\x9d\x91@\x1b\xa1\xd1\xf7\xc7?]\x15\xcb\xad\x8f\xefZ\n\xf7\xc9\xaa\xb3\xd2f[`\x84\x1eUY\x8e\xa8cL\xe0y]-\xa8\xa5\xe5\x16\x85\x89\x07M\x89\xc5\xb5a[\r4\xc3\xc0~\xd7\xa2\xc1\xb7\xcfx:\x7f2+\x8b\xd9\x16wr\'\xfd\x99\x9fI#_\x12\xd8;\x01ZxH\xd1\xd7\xed\xd6\xc7/\xcb<#f#5IK\xef\xd4Y1\xa3a\xb7y\xfa\xd1\xefC\xcf\xdd/\xbe\xb8\xfb\xf4\xe9Gv\xec\xe6Qjq\xee\xdf\xfb\xca\x92\x06\x0f\xc6S[\xf1\xd0aEE\xc6\x83\x80\xd1\xe1+\x92\xa2\xf4c\xb6\x0f\x84\x0c\xc5\x8aM\xfb\x80&\xa3\xf9\xb87\n\xbc\xe0\xf7B\xef\xc5\x84\x0f\x0f\x10\xfa\xfd1\x01\x84\x8b\xe5r\x90\xc6\xeb\xdf<\xdcnL6\x90\x1b\xc9_\xc4\xa0\xfc\xd7\x9dt;}\xd0}).\xb3x\xbe\xc9n\xef\xedv\xdf"\x92\xd3\xbf\xf6Ag`r\xfbj R\xd4\xc0>h\t\x94lKO\x90\xa9i\xd8\x18T^\x8c\xdb\xeau[\x17\xcb\x8b\xad;F\xac\x88\xda\xbbw\xc2\xa6x\x00W\xc4lA\xa0\xe8\x03\xfb\xa0W\xb0\xb8\xedU\x86\xd6i\x85\xeef\xb7\xef\x0e\x00\xa5\xbbY\x07\x10\xba\xfb\xfd\x9f\x11\x0b\x11g\x10]>II\x8e\xe9\xdf\x05\xfd_~\xeb\xbe\x00\x1e\x05j@K\xd9S\xde\xef\xa2(\xdc\x96~dy\xf4#\xaf\x817)\xc0`\xb6K-\xed\xd4\x8b\xa4z\xad\xb9\xc9\x9e\xdf\xa4\xc3\x1d\xdc\xe0\x1e5\xd8\xa2f\xdb\x04\x0e\xde\xc1\xc1\xa7\xfb;x\xa8\x9dk\t\xc2\xddB\x1a\xd0\x8c\x00\x1e\x11\x1bw\xbf\xc2\xa3\x9a\xe1\xdf\xf8\x87\xff\x8e\xff\xe8\xdf\xf8{\xff\xb1\x7f\x0f\xc9\x95\x07\xff\xdc\x7f\xf7o\xfe3\xff\xf0\xbf\xf8\xbb\xfe\xae=U\x80\x87\x11\xcc\xae\xbf<g\x1e"Dg{vnc\xed\xe9k\xc3\xe3\xdek\x11\xa9\xc2\x13\x99\x12\xdf\x8e\xedu} ~DAu\xbe\xf0\xa6%.\xae\x96.$g\xdd\xef\xf0(a\xfe\xa9\x7f\xfd\x9f\xf8w\xfe\xb6\xff\xfe_\xf8e\x7f\xe7\xdf\xf1/\xfc\x95\x7f\xf1_\x9a\xfe\x9b\xff\xc3\xdf\xfa\x97\xed\xfe]\xff\xeb\xbf\xf6\x8f\xfc\xac\xd2\x86P\x8a\xb4\xfe\xd9!\x8e\xfb\x15\xd83\xc3\xb6\xe41\x11\xf2\xe8\x8f\xff\x9e\xcf\xb5;(\x8c\x8f\x1e}D\xff\xda\xef\x16\x0b\xf3]\x08\x88\xd8\xda\x03C\x7f\r\x00\xa1ob \xf0\xd5\xa2\x9a\x99q\x82\xc3\xfd\xd1\xe1k\xb6\xc4\xcf\x88\x1e$\x91\xa6\x1d>\xef\x90(\xa0\n\xbe\xb7\xef\x01?m\xc4C\xc1\xdf\xd1\xc6o\xaaN\x17\xa1\xc1\x1ex\x07\xe0\xb4\t\r\x12\x7fE\x1b"\xe7\xf4\xb2\xae.\xc9[%\x1f\x9f\x9b\xe3;\xf2j\xbdo\xf4\x8bxWhwB\xf8\\T\xf5\xb56\xc4w\n\xa1\xf3M\x1cD\xcfN\xe3\x9b\xa8\xfd\x8e\xbe\x8e4\xe8\x0b\xeaK\x1b\xe1\xf3\xceG\xf1\xf78\x04\xb2\xd1\x14>\xa6>\xf9C\xc4E\xfaq\xfc\xd57\xc5\xf4m\xde\xbeX/&\x01\xd9"\x1f\x07\xefC\xea\xd1\x8e\x88c\x92\xd5\xcf\x8b\x86\xba\xea\xe9\x00\xb4\xe2\x9eL;\x05\x87\xcf{o\xf37AG\x9e\\\xd1\x1b\x90Sj\xd5\xac\'\x8b\x82\x02\x0cmGm\xe4\x17\xeb]\xf6b\x16\x1f+\x88\xd5\xef\x0f\xff\x99\x00\x82P\xfd\xc9Q\xb8x\xd0x:\xcf\xa7o\xcf\x96\xb3\xfc\x9d\xbeDx\x83%\x94\xa94\xbczt^\xd4<\x06\xc4\xd6\x01\x0c\x1e\xbe\x84D\xf4\xa9\xfb\x1cD\x04"q\x83\xc3\x1dA\x9eX\xe2\x1b\x1a\r\xbfN\xdf\xd8\xc76a\xd1\x1flBb\xb3\x19\x065\xd8\x08a\xdc\x16S\xe2\x85\r-\x06H\x82LXV,\x9b\xad\x8f\x8f\xcb\xf2\xe3;\x04\xa0\xce\x17\xd5e_\x8b\xfb\xfcv2\xa7\xc4E\xd8$nz\xb8_\x0c\x9fG7\xa7~\x83\x97\xf0\xd8&<\xbe\xc1&D\x80\xcd0\xa8\xc1F\x08\x8eB\xb6E\xd8\x06sM\xednM\'\xeb\xbd}\x96RJ\xa33p<}`\xf4\xd6\x8a\x1c\x19Bu\xeb\xa3\xc7\x02\x98\xd8\x17!?C=\xa2\x7f\x1e\xdf\x95\xcf\x8f>\x02\x86\x04%x\xa2 \xc9\xeen\xed\xd0\xc4kv\xc0\x88\x01|(z\xc5>$\x83\xf4\xaf}\xccp=\xf5%\x19\x07J\xaf#!CY\x86\xc1Qy\xef\x08\xb7\x1cw\xde\xect\x8d\x07\xefy\x06\xeb\xbd\xde\xb3V\xe8\xbd\xde:\xff\xfd\xc9\xd1\xbe\xb8\xc8kv\xcb\x15BT<\xf0\x84o\xd8\x1e\xa3\xed=R\xea\xaf\xf4C~\xb1\n.&/>=\r\xfd\xfdv\xd4\x1f\xb1\x03\xa9W\xbf!\x1e4\xf4\x88\x8eF\x1f\xf5\x18\xa4\xd3\x88g\xf3\x17\xa7\x8eN\x8f\xbc\xdf%1D/\xd9\x07o{t\xfa\x1ao\xb3\x14\xb3\x90\xde\xf42\x92\xd5\xf8~\x92M\xdf^\xd4d\x01\xb9\xc5\x8f\xe7\x13\xfao\x1f\r\x86\xa0\xb3\x84\xffl@\xb7\xf3}\x13\xf0\xc8\xbb$\xce?k\xa3&\xd8?kcv\xdc\xee\xcd\xbbU\x8e\xd4\xc8>akK+\xdb\xd6\xb5\x1e6\x03\x1eg\xdeJ\x8a\xf1\x8e\x87\xd7\xad\xdfa>\xe1\xf9\x88\xbf\x12\xa7\xd4\x00\x89\x18\x18O\xc07\x00\xcc\xd2-\x0e+\xf2\x06\xcd\xfe75\x12\x02\xf5u\xc7\xd1\x07\xc6da\xcc\xdc\x0bdq>\xbe\x9a\x17m\xfe1\xbdB\xed\xecc_\xe0\xfeo\xf9\x02\xa1\xfb>\xf0\xa9\xf9\xfb@w\xbc\xecqXT\xd3\x87\xad\xed\x0c\xf6\xda\x92\xfe\xa7\x7f\xcd\x0f<w\xefZS\xd0V\x17\x17e\xfe%\xdbu\xf8\xbc[\xd5\xe4\xa7GiV\xd7\xf8\x83\x7f\x817\xec\xc5\x84w\xefz\x02t\xf7.\xfd\xe3\xec\nZg\xcbY\x99o\xd1o#^,\n\xde\xa4\x7f ~\xdd\x8f\xf0\xb0\xc9\x19\x17\xcdq]g\xd7x\xfdN\xefM<\xf46\xfd\xcb\x8f\xfb\x10\x0f<m\xf2z\x88\xb4\xf4\xae\xfa?\x1e\r\xc2\xc6\x14\x08\xa4[\x05\xb5\xdd9L\x0b\xcaTSs\xfa\xe5\x93O\xa2]\xe2\x19\xec\x16\x0f\xba\x16\xc7\xe8EuE@\x89\x82\xe3\xf3\x02~\x94|Js\x92\xff"\x0c\xe9{\xc5\xf7\xfdy\xd9\x04\xe9%\xe0\xf0o\x04s\xbc\xcaj\xca\x16o}\x84U\xec\xc0\xb4\xf6A\x80\x8e\xa0;\xf9~\xe9G`\x85\x8f\x06\x07\x85g\xe3\xc0\xf0\x00\x9e \xf2r\xdc\x14? \x9d\xba\x11\x1e\x9e\x1ba\xe210\xa7\xf3\xa2\x9c\xd1\xe8(\xe58-\xab%\xc1\'5\xb0*\xb3iN\x0e\xa7\xe9y\xf3\x90\xf1\x04\xccM\xff\x04\x8f(\xfeM-nD\x19d\xf8]\x15\x9b\x9f\x05:`\x92\xaf\xealE\xae7\xe6\x98\x12@\xb4l\xfe\x19\x94 \x91\xe2\xfa\xd1\x92\x08\xf31\x16i\xe9\xbb\xd0\xf9\x8e\x03\xdeL\x8d\xa1/\xa3_\xd0\x87\xdd\x8f#\x1f\x11s;\xc1\x17\xcd\xa1\xccG\xb8nl\x0c\xedB\x8da\xae{\x8d\xa9#\xfa\xe9\xd4\x0bG\xc2Os\x8auJ\xd2u\xd9V6J\'\xa3tJ\xabF\xa3\x94\x80\x9c\x8f\xd2\x8bQJ\x8bHE\xe0\xa3b\xeaH\xd6I\xe7..\xfa\xab\x19P\xa2k2\xffK1\xff\xf0^3\xe0A_\xd9\x07mVY\xd3\\U\xf5L\xdbLbm\x08\xcce^\x17\xa6\xcd4\xd6fZ\x16$\xca\x90Pm\x15\xe4\x9d\xf1\xa0\x15\x16\xdf\xf5\xfb _\x85\x07\xdf\x03c\x0f\xc6y\xacM\xb6Z\x95\xc54\x03\xe5,J\x17\xb1\x86m\x9d-\x9b\x8cIl\x1b\xce#\r\x17\x17\xa47a\xc9:\t\x14<"b>qu\xf2\xe8\x87\xfcbg\xb1\xa2\x18\xf3\xbb\xc5rV]}\xb7h\xe7/\xab\xa6\xdd8\x91\xc4\x07\xff\xf5\xef\xff/\xfd#\xff\xca\x9f\xfe\xb7\xfdM\x7f\xe9_\xf7\x1f\xfe\x9e\xff\xe1\x1f\xfe/\xfc+\x7f\xcb\xdf\xfbo\xfc]\x7f\xc7_%\x9f\xfd\xed\xff\xd8?\xf0\xdd\x7f\xe3\xef\x94.\xf0\xc8l\xff\xaef\xb6%\xf1\xda[6\x83\xa2\xa5\xdc\xbf\xa0A\xaa\xf6\x8a\x7f\x19\x03\xb5\xad\x8f\xb2,C^4\xa3\xff\xcf\xe9\xff\x1f\x8d\xe7\xed\xa2\xfc\xa8\xb3\x88\x1a\xb4\xea~7\xcf\x8b\x8by\xfb\xd9\x83\x9d\x9d\x11\x81\x9e\xb5\xf3\xcf>\xc5\xafmU\x95\x93\xac\xfelY\xd1zg\xbe\\\x9b\xdf\x9bi]\x95\xf8\xa6\xf9\xec:oF\x844i\x18x?\xf2gY\xc9,J\xdb6k\xd7\r\xfd\xca\xd2B\x9d\xf1\x83Q\xff\xaev@\x1b\x87\x8d\xc1\xd0\x88?\xf2WO\xf8\xb3O>s\x1f\xe0\xf9\xe81>>z<\xcf\xb3\x19\xe9\x1e\xf91\xa9f\xd7G\x8f\xc1\x07i1\xfb\xecc\xfcR\x90\x93\xbf\xc8\xdbyE\x7f\xafh6?N\x85\x97>\xfb}?\x9a\xb7\xed\xaayt\xf7n\x9d\xcf\x8a\x9a\x12\x00U}\x0f\xdc\xb5\xce\xd1\xe22\x1f\xe7\xeb\xbb\xd3\xac)\x96\xd5\xddY~\x9e\xad\xcbv\x9c5\xabw\xbf\xefGG\x11\xe4\x08\x9fb\xb9Z\xb7\xecU|\xf61)\x8cY\xbe\xfc8\x85\xdc~\xf61\xe4\x01\xbf}LC$\xf0\x9f}l\xa6\xe6\xa3\x8f\xef\xbe70#\xea\x01\xb0\t\xfd\xff\xeb\x00#\xc4X\'\x04\xc0\xa6\xf4\xff\xaf\x03\xcc)\x8f\x00\xdc\x8c\xfe\xffu\xc0A\xcb\x04\x80r\xfa\xff\xd7\x01\x04\xf2\xe3\xf3\x00\xd89\xfd\xff\xeb\x00\x0b\xf4V\x00\xf1\x82\xfe\xffu \x06\n.\x80\xc8\xf2=\x08\xf1.\xd8\xfb\xe81\x89g\xb12\x90\x91\x9e\xbd\xfb\xd3\xd9e&\x9f~|4\xab\xa6k\x12\xe6\x16\xa9\xae\xd32\xc7\xafO\xae\xcff[\xbf/\xa7\x9b\x8b\xd9\xef\xeb)\xccx7\xbf\xef]\x81EB&\xe2u\x17\xdf\x058Y\xd1\x1e\xdb\xee\xaej\n \xb6\xd0\xd2W\x04*\xf8\xb6\xbd~\xd5\xd7\xc2\xab\x15k]R\xb0\xf2\x05\x1e\xa8\x07\xd2/\xb2\x06C:\x82t\xbeDG\x1c\xee\x10\xd9(KD\xf4\xb2\xabF\xfc\x1d\xc76\xfc]\x08\x88\xc2\x1e\x0f\x0c\xfd5\x00\x84\xbe\x19\x02A\xeb=\x19\xbd\xefa\x88\xe7#\x8e\xa1\xcef\x1f=J\xb3\xae\xe2\x85\xb7\x94\xd7\xfc\xdd\xa4\xfb\x1d/d=\xa26\xab\x9e.g\xc7\x02\x8bQ\xd4#\xda\x00//\xfab\xd4\x06\xdf\xc1(\xe9\x1d&\x06~\x8f6\xd4\xc5+\x01mC\xb5a\xc0\xbap\xf5\xc8\x901\xda\xc8K\xb5\xd6\xd4\x14\xa0)\xd1\xea}\xba\xb1\x0b\xb4\xb3\xcbR\xc1\xdb\xf6\xd3M\xaf{\xeb\x1e\xf2rt-$\xfa\xaaM\xb7\xc8\x8b\xf6\xcfM\xef\xf0z\x14\xadF\xc9+\xd4\x17\x7f@\x9c\x805\x93\xe1\xd7\x82\x0c\xa6\xbc\x1b|\xb4\xe9]\xb3\xb8\xa4\xef\x11q\xcc\'\xfer\x93{\x93\x84\x8c\xfe\xe5\xe7w\x1bg?\x9d\xbd\xdb\xeap.4\x081\xe0\xe7\xa7o\xba\x1c\xb8\xaeK\xfa\xc2\x80\x7f\xe3\xf4\xd5\xef\xff\xea\xc5\xe7l\x14\xbbo\x10;e\x8f\xf8\xdf\xce\x17\xd3j\xd9\x92~\xc0$\x10HO\x99\xde\xfd\xe9\x86b\xd1Nk\x00\xd0\xa6\xb1\xaf\x9b\xf5t\x9a7\xcd#\xab7\xb6\xc87\tt\x86y\xe0\x81\xd0w\xe3\xbc\xae\xab\xda#\x8a\xff\x04m\xe0\x91\xc7\xd7&\xcc\xe3;ex\x8d\x88\xe4\xab:\xff\xe9\xbb\x9f\xdd\'+\xc9D1\x98Y.\xea\x96F3\x08.\xfc\xd8\xfb\x93\x93N\xf4\x13\x9f\xc9/\x862\xe9jyA\xa1\x83\x8f\x83?\x00\x1bT\xf4_<\xa7\xf7\xbeaU\xac}\xe1\x01$U"\n\x87\xfe\x1a\x80B\xdf\x0c\xc2\x00\xa7\x10\x00\x0fG<\x1f]@$\xbb<\xf8\x11\xc5\x11\x1b4\xf0\xf9E\x97\xcfD\xe0\xa0M\xa9\x1b\xb4\x016?\xd2\xc0?\xd2\xc0\xa2\x10\xf5="\x8e\xf9\xe4\xe7\xaf\x06f\x15\x1a\xe8\n\xf3@\xbd\xfe\xae\xf4\xe5x\x9e5_^-\x89\x03W\xa4\xf3\xae\xb7>f}\xfb\xfbOI\xfa\x06\xd6M\xf1\xf8\xca\n@\x88 \xbe\n0\xcffM+Z\xf6\xa3St\x98V\xd3\xe9\xba\xa6\xd0/\x88T\xcd\xe3M\x15\x1e\xef\xcf\r*v\xfa\x8b\x1e\xb2\xaa\xa4\\A0\x0e\xe8\'+\xfd\xa4\xa4\x98Y\xf0\xf7\x80\x9e\xe3\xef\x065\x9d\n\xbc\xc2\xa1\xbf\x06\xa0\xd07\x8300\xab\x04\xc0\xc3\x11\xcfGuA\xac\xdc\xe5\x97\x8f.\xa6\xf4i_[.\xe9\xd3i\xefS\x9aE\xfa\xfc#"E\x97UDf\xa0\x10\xa9w4\x02\x92?R\xa2?R\xa2\xa2\xd3\xf4="\x8e\xf9\xe4GJ4l\x86\x07J\x94\xbe\xeb\xe9P\x92\x0b\xca\xbb\xbd\x87\xfe\x04J\xbeV0\xcfm\x14(\xde_\x10\xc2\xc4\x1bQ\x10\xe1G\xde\x9f\x1bt\xe7<\x9bd\xcb\xbc\xae\xc8\x13\xf5;\xf7\xd1\xb6\xf8\xd2\xdb\xb4\xd8\xc0^\xf2\x11\x00I\xc2\x8f\x93)\x9c\xd5\xf8(\xa5\xe4\x9f\xfe\xa6\xa9\xbf\x8f\x90\xfa\xfb\xc8\xa4\xfe6\xf3\x00\xc1\xa4NR\xcd\xd8\x00\x14k5\xed@~\x07\x93}\x86e\x01\xca\xe3|D*\x15)\x9b\x8f>J\xef\xf6\xdfe&\x87\x06#\x8a\xd3\x8b\x02\xa4\xf3\xe1\xd7\x80\x06u\xd5\x83&\x1f\xbe\'4U\x9a>,\xf3\xd1{C\x12\x04\x02H\xf2\xd1{B\x82~$\xe6\x86v\xad\x03x\xe1\x17_\x03\xaa\xd5\xba]\xa8\xee\x8b\xf7\x84\xea\xa9c\x1f\xa6\xff\xf1{B\xb4\xaa\xda\x87\xe7>|Oh\xac\xc2I\x81\xfb\xc0\xecg\xef\t\xcb\xc8M\x00\xcc}\xf8\x9e\xd0\x02\x1b\xe1C\x0c\xbf\xd8\x00Us\xa0\xf4\xcb\xef\xba\xbd\xed\xab\x01]\x0c\xe2\xbe\xcc\xefqU`\x17\x01\xdek\x11\x80\xb0\xcajJ\xa9~\xf6\xd1\xef?\xa1<\xf5\xdb\x88\xd2@\xd6\x19\xc8\x98\x91\xb9\xbf7\x0c\x88@\xf80L\xae\xdf\xc0p\x7f\xdf\x1e\x06u\xcb)~\x03\xc3\xfd}{\x18.\xb3o\xa0\xf8\x9f\xe0\xdf\xdb\xc1!R]\x18\x08\xf2\xfb\xed\xdf\x05\xfd\xd0\xda\xbc\xef\xfe\xc6\xbf\xb7\x83\xe1\x19j\x10@\x00u>\xbc=\xb4 qo\xa0u>\xdc\x00M\x99w{\x1b\xbf\xcfw\xd3iI\xb3\xfb\xd9G\x1747\xdbm\xd1\x96\xf9GG\x7f\xfb\x7f\xf9o\xfe\xab\xff\xea\xbf\xf0/\xfe\x9d\xe9v\xfao\xfe%\x7f\xfb_\xfe7\xffU\x7f\xf3\x7fO\xe9\xf7]z\x81^\x99\x15\x97\xe6\x9d\x16\xcbq\xdbd\x97W\xd5\xb2!\xae%\xbbI\xcbz\x07;\x96-\xb9A\xd0\x9a\x18\x98\xfe\xdd\x9e\x107\xe5\x14\x05\xa5X9\xd8\x9e\xd2\x9c\xe6u:e\x89.~@\x18\xc8\xfbx\x1e\xb7\xb5\xf7\x17\x9e\xc7\xed\xec\x08(\xfdC\xff\xd1\xbf\xf4\xcf?\xbeK\x7f\xf4\xbf\xfeG\xff\xc1\x7f\xe5o\xfd\x9b\xff\x99\x7f\xe6\xff\x8c\x7fM\xee\xfc5-#~4+\x1a\xa4\xc6\x1f-\xabe~\xf8\xd1\xd1?\xf8\xcf\xff\xbd\x7f\xe5?\xf9\x9f\xff\xed\x7fy\xfc\xa5#\x10\xe4\xef\xfe\xab\xff\xd5\xbf\xe2\x9f\xfe\xe764\xf8\x87\xfe\xa3\xbf\xf9\x7f\x1a\xf8\xfa\x9f\xff/\xfe\xbe\x7f\xe5_\xffg\xff\xde\xbf2\xfe\xb5%R1%\x05\xf4\x11\x03\xfb\xa7\xff9\xa6\xfe\x7f\xf4\xf7\xfc\xe3\xf1w\x8e\xfe\xa9\x7f\xfd\x9f\xf8w\x06\xbe\n?\xc1\xa3\x1c$\x9c1Y\xb7-y\x84\x863\xfe\x96\xff\xfa_\xffW>J\xab%\x89\xd7\xf4\xadjC\nc\xb2\xad\x8f\x7f\x11~%\xb3\x9c}|\xe7P\xf8\x87@\x05\x8f\xc2\x05g\xea{\xd7\x8da@\xd3\xcdF\xc84\xf0\xf6\xc1\x8c\xde\x8av\x11\x1b\x9f8a\xda\x078\xc8[{\xf2y\xc7<\xbeb?\x99\x93\x02\xc8\x83\xd0\x14\x8f\xe7\xd9\xd1_\xfcP\xcf>\xeb\xc5\x191\xfc\x04\xcfc\x8a%H\xa1\xab\\R0\xe3\x9bdP\xa9\xf3\x912\xa3\xac\x8e?\xda\xdbY\xbd#*\x10\xc1\x18\xcf\xcf>\xfa6\xf9\x1c\xaf\xe7\xd5\xd5\x1brh\xe8MB<6B<\x8f+N\xdf\x9a9\xdd\xf9(=\xfaG\x7f\xe5\xbf\xf8wAT\x1e\xdf\x95\xefn\xf7\xe6.!\xc5c\xc8\x89k\xff\xd6\xbf\xef\x9f\xb8\x01\x02\x91\x8e[w\xbe"\xf2u\xc9sK\x82\xb1\x9b\xc0\xd1\x9f\xa1\x97\xf7I\x8c\\\x11\xa0x:\xc3\xda\xbbOosW4\xae\xbd\xfb\x1bF\x84\xa7\xf3\xf2}\x90\xf3\xfe\xce\xfb\xbd\xb4\xbb\x83\xb7\xe8\xdf\xf7{\xed>\xbfF\xff\xbe\xdfk\xd4\x0f\xde\xc3\x8f\xf7{\xf1\x1e\xbdA/\xe2\xc7\x86\x17\xdfk\x9a\xcd4uTl\xd8\x0eO8\xf9\xf4\x87q\xeb8\x0c\xe7\xf9\xef}\xa8\xb0\xdf\x9f\x05>\xde\xfd\xf4c\xc7\x02O\xb2\xea*[^lO\xaeZ;\xecN\xfb\xfd\x87\x1f\x1f=yr\xf6b\xe8\xfb=\xfa~\x96\xaf\xf2\xdd\xa1\x06\xf7\xef}|t1\x1b\xfez\x1f_\xef\r}\xbd\xfb\xe0\xe3\xa3\xe7\xebj\x91\x01\xc7l\xa8\xd5\xfd\x83\x8f\x8f\x16\xa4C\xf3\xfa\xe0`\xa8\xcd\xa7\x9f\x9a6\x0f\x1f\x0e\xb5\xd9\xdd\xdd\xa3F\xb3\x9d\x9dAt?%|\xa8\xc1 \xbe\xf7v\xe8\xfbb\x965\xc3 \xf6\x00\x82\x9b\x0cB9\x00\x94\xeabg\xe7\xd3\xa1\x16\xbb\x181Z<\xd8\x9eW\xcb\x8b)\xa9\xc7\xa1\xa6{\x06\xd8\xc32\x9fTC\xad\xee\xdf\x97V\xbb\xf7\xb7\xb3|\xa8\xd1\x83]i\xb4\xbf\xbb\xcd#\x18j\xf7)\xc8\x88v\xf7wv\x17\x17\x83\xad\x883\xb4\xd5\xdep\xab\x87 \x97\xb4\xba\xb7\xa1\x95\xd2\xe3\xd3O\x7f\xba\x98\xe4\x83\xdc\xbc\xbbC\xec\x8av\x0f>\xcd\xa6?=\x1dl\x06\xaeF\xb3\x83\x077R\x97:\xae.\x16Wo\x87\x1a\xdc\'\xbe\xe3\x06\xc3\xd3\xbd{\x8f\xe8Z]\xac\n"\xffP\x1bB\xe8\xcb\xcf\xdf\xe4M\xfbj\xa8\xc5\x1eu\xb4\x9a\x17\xe5\xd0\xf7\xbb;\xd4\xcbO\x1c\xa7\x14\xc5\xcf\xd2/)}\x95Q\xc85\xd4\xf8>Q\xfdj^\xb4\x8e\x15\xfa\xda\xe5\xbd\xd4a\xe7\x13<=\xc5\x87l\x00a\x87\x1c\x83\xd5{\xc1g__\xed\x1d\x97\xa5\xa7\xf7\xe8/;\xaeN\xc3\xc5\xc5\xc7G_\x14\xd3\xba\xba\xc8\x16\xc5r\x90\xdf\xa0\xd2\x97\x17\xd5\xc7G/\xe9\x97\xf4E\xfa\xf9\xa0`\xad\xea\x8c@\xbe\xa4\x7f\x17\x14\xe9LS\xbc`\xdb\xf6q\xffY!\xaa\xa4X\x90b\xf1\xa8\xea>\xfc\xa6\xc8\xfaO\xfd\xb5\x7f\xcb?h\x87\x16\xb6\xfc\xe8c\x89\xe5?\x1e}\xfc2\xab\xcbj]\xd3o\xab\xeam\x8e\x9fo\x10\x10}L\xf6\xf7\xdf\xfc\x87\xfe\xd1\xff\x02n\xff \x90\xa6\xacZz\x01?\x1a\xbc\xf0\x0f\xfd\x8b\x7f\xef_\xf2\xf7\xfe\xef\x1b_\xa1\xe6Y=\xcdh\x8dk\xf4qN\x93\x8a\x9f\xe7E3\xd7\x1f4\xc7\xf8\xad^\x17\x00\\\xf3_\xaf\x9f\xfe^)(D\xbf\xfe$\xf1]\x95\xbeTD\xaf+\xcc;:\xfe\'\xfe\xb3\x7f\xf6W\xdb.\xfb\xa4z\xbfY\xd4\xf8\xc19\xf3&\xa4u\xa9\xa7\x86bB\xf2o\xc8\x7f\xc3\x0c\xba\xcfu\x94\xd4@\xe6\x90\xc3\xcfG\xe4\x00a\x0e)\x92\x88\xf7\xd8\r\xb5\x06\x11\xf0\xc3\x06\xea#@"\xfcn3"\xd5\xf2m~\xbd^\x85/\xd98\x04\xdf\x1bg\x7f\xa0\xc1\xd0H:\x9f\xe0y\xbc\xac(\xb6\x8e|\x81\x07\xb1\xfb\xc0Wx\x94\x10\xc1\x18\x1eb\x08\x81l\x04\x84RRR\x18G\xd3\xb1\xc8\xde\x95\xf9\xf2\xa2\x9d\x13\x99\xc8\xa1$n\x99\xe6\xf3\xaa\xa4@\xff\xb3\x8f\xae\xe9\xb9\xbbX\xdc\x9dQrB\xa8k\xd7\xe0:\x94u\x9f+U\xf7vv\x1f\xde\xdd\xd9\xbd\x0b\x98\xdd\xe8\xd0\x7f\x1e\x17\x8b\x8b\xb4\xa9\xa7\x9f}4\x1e\xd3z\xc8\x94V\r\x96\xb3\xac\xbeK\x1f\x8f/\x8as\x85\xfe\xfb\xb7uqq\x91\xd7\xbf\xbf\xebG\xf1\x89|\xa3\xa4\xa0\x15\xdb\xa6\xaa\x1f\xa5\xab\xaa@\xa2\xe20%\x12\xd3\xa8\x1e\xa5\xbb\xabwiS\x95\xc5,\x05]\x90<\xf9\xec#\xbc\xa9Z\xa1\xaa?\x1aF\x97\x9fj\xb9\xa8(\xa3TQj\x8cH:/\x9a1w9\x9ed\xd3\xb7\x175E<\xb3\xcf>\xa64\xc9\xc7\x04\xde4]S\xf6o\xa0%\xc9&\xcf\x1a\x11\xf3\xe0\xa3TfM~\x07\xdd\x86Qy\xef\x80\xda\x7fN\x94\xce\xe3&o\xd7\xab\xee\xb2X\xeca6{V\xe4\xe5\x8cV\xa6,\xb1G\xf4\r=w\xef\xd2<\xa5\xd5y\xda\xcesi\x99\x9e\xa3\xe9-\xc0\x9e?\xa3\xc4V\xd6\x12P\xc3j\n\x13@\x91\xf4\xca\xda\xaf\x05X\xb2\x18\x046\xc2"\xe8\x81\xa0\xeb\xe7\xe8\x85\xe1\x1b\xe6K\xb7\xe4\xe5\xf4\xec\xa9\xb7\x988\xf4\x90\x8d\xb8(\xf3\x13\xa4J\x1e\x11\xc8uN\x9f\x99\x87:\x99Uk2\x15\xdb\x9cJI\xb1 \xb4\x19\xa2]\xf6\x8a=\xa4\xa3yv7Ln\xc7\x98R\xe6\xb9\xa55\x7f\x9a\x1d\xef\x0f\xe6\xc1\xd0x\xde\x18\xf2\xf9O\xc7^!\x0e\x95^\xc9\xa0n\x8cF\xfd\xa7\x0bd\xf7\xa3#\xcf\x95|\xbfw\xf7\xe8]\xe7\xaa\xbe\xdf\xbb\xf7\xe8\xdd{_\xf3\xdd}zw\xffk\xbe{\x9f\xde\xbd)\x9da\x9e\xee\xbb\x9f\xd2\xbb.\xcez\xbfw\x1f\xd0\xbb\x0f\xbe\xe6\xbb\x07\xf4\xae\x8bV\xdf\xef\xdd\x87\xf4\xae\x8bb\xdf\xeb]\xb2!\x94 \xf9\x9a\xef\x12_\xed~M\xbe\xda%\xbe\xda\xfd\x9a|\xb5K|\xb5\xfb5\xf9j\x97\xf8j\xf7k\xf2\x15\x19\xe4\xa3\xdd\xaf\xc9W\xbb\xc4W\xbb_\x93\xafv\x89\xafv\xbf&_\x91\xad;\xda\xfd\x9a|\xb5K|\xb5\xfb5\xf9j\x8f\xf8j\xefk\xf2\xd5\x1e\xf1\xd5\xde\xd7\xe4\xab=\xe2\xab\xbd\xaf\xc9W{\xc4W{\xb7\xe1+\xb2\x15\xac\x9374y4\xfcU\xc4\x8c,hY\xd4\x9a\x11\xfc\xf1#3\xe2\xbdK\xd3\xf2#32\xf0t\xdf%q\xff\x91\x19\x19x\xba\xef\x12_\xfd\xc8\x8c\x0c<\xddw\x89\xaf~dF\x06\x9e\xee\xbb\xc4W\xb72#x\xba\xef\x12_\xed}M\xbe\xa2\xe5\xbc\x9bW\xf1\xcc\xd3}\x97\xf8j\xefk\xf2\xd5\x1e\xf1\xd5\xde\xd7\xe4\xab=\xe2\xab\xbd\xaf\xc9W{\xc4W{_\x93\xaf\xee\x11_\xdd\xfb\x9a|u\x8f\xf8\xea\xde\xd7\xe4\xab{\xc4W\xf7\xbe&_\xdd#\xbe\xba\xf75\xf9\xea\x1e\xf1\xd5\xbd\xaf\xc9W\xf7\x88\xaf\xee}M\xbe\xbaG|u\xefk\xf2\xd5=\xe2\xab{_\x93\xaf\xee\x11_\xdd\xfb\x9a|u\x8f\xf8\xea\xde\xd7\xe4\xab}\xe2\xab\xfd\xaf\xc9W\xfb\xc4W\xfb_\x93\xaf\xf6\x89\xaf\xf6\xbf&_\xed\x13_\xed\x7fM\xbe\xda\'\xbe\xda\xff\x9a|\xb5O|\xb5\xff5\xf9j\x9f\xf8j\xffk\xf2\xd5>\xf1\xd5\xfe\xd7\xe4\xab}\xe2\xab\xfd\xaf\xc9W\xfb\xc4W\xfb_\x93\xaf\xee\x13_\xdd\xff\x9a|u\x9f\xf8\xea\xfe\xd7\xe4\xab\xfb\xc4W\xf7\xbf&_\xdd\'\xbe\xba\xff5\xf9\xea>\xf1\xd5\xfd\xaf\xc9W\xf7\x89\xaf\xee\x7fM\xbe\xbaO|u\xffk\xf2\xd5}\xe2\xab\xfb_\x93\xaf\xee\x13_\xdd\xff\x9a|u\x9f\xf8\xea\xfem\xf8\xca\x0b[74\xfa]\xb7\xb7#\x11j[`}\xc9\xc6\xa8\xf2\xe77\x1e\xa5>\xe2\xffQ\x18\x82\x1f\xf4\xbf[\x0c\nO\x1f\xce=\xbc\xcdp\xf8\xb7\xaf\tg\x97^\xa5\xff\x11\x1c\xfd\xedk\xc3a,\x18\x0e\xff\xf65\xe1\xec\xd1\xab\xf4?\x82\xa3\xbf}m8\x8c\x05\xc3\xe1\xdf\xbe&\x9c{\xf4*\xfd\x8f\xe0\xe8o_\x1b\x0ec\xc1p\xf8\xb7\xaf\tg\x9f^\xa5\xff\x11\x1c\xfd\xedk\xc3a,\x18\x0e\xff\xf65\xe1\xdc\xa7W\xe9\x7f\x04G\x7f\xfb\xdap\x18\x0b\x86\xc3\xbf}M8\x9f\xd2\xab\xf4?\x82\xf3\xe9\xa3\x1d\xfc\xf6\xb5\xe10\x16\x0c\x87\x7f\xfb\x9ap\x1e\xd0\xab\xf4?\x82\xa3\xbf}m8\x8c\x05\xc3\xe1\xdf\xbe&\x9c\x03z\x95\xfeGp\xf4\xb7\xaf\r\x87\xb1`8\xfc\xdb\xd7\x84\xf3\x90^\xa5\xff\x11\x1c\xfd\xedk\xc3a,\x18\x0e\xff\xf6\xf5\xe0\xec\xe2U\xfa\x1f\x85\xf3\xf8A\xff\xfb\xdap\x18\x0b\x86\xc3\xbf}M8\xaa\x95\t\x8e\xfe\xf6\xb5\xe10\x16\x0c\x87\x7f\xfb\x9apT+\x13\x1c\xfd\xedk\xc3a,\x18\x0e\xff\xf65\xe1\xa8V&8\xfa\xdb\xd7\x86\xc3X0\x1c\xfe\xedk\xc2Q\xadLp\xf4\xb7\xaf\r\x87\xb1`8\xfc\xdb\xd7\x84\xa3Z\x99\xe0\xe8o_\x1b\x0ec\xc1p\xf8\xb7\xaf\t\xc7\xeag\xf3\xdb\xd7\x86\xc3X0\x1c\xfe\xedk\xc2Q\xadLp\xf4\xb7\xaf\r\x87\xb1`8\xfc\xdb\xd7\x84\xa3Z\x99\xe0\xe8o_\x1b\x0ec\xc1p\xf8\xb7\xaf\tG\xb52\xc1\xd1\xdf\xbe6\x1c\xc6\x82\xe1\xf0o_\x0f\xce\x1e^\xa5\xffQZ\x0c?\xe8\x7f_\x1b\x0ec\xc1p\xf8\xb7\xaf\tG\xb52\xc1\xd1\xdf\xbe6\x1c\xc6\x82\xe1\xf0o\x1b\xe1\x10\x00}\xbapT+\x13\x1c\xfd\xedk\xc3a,\x18\x0e\xff\xf65\xe1\xa8V&8\xfa\xdb\xd7\x86\xc3X0\x1c\xfe\xed\x16pl0\xb8\xbd\xbd\xa1\xd5/\x8d\x7f\xf5\xf8\xee\xac\xb8\x1cx\xed1}\x95N\xcb\xaci>\xfb(_\xce\x9efm\xbe)\x0e|\\,W\xeb\xd6\x84\x92W\xc5\xac\x9d?z\x88H\xd2\x8f*?J\xdb\xeb\x15}\xdd\xe6\xef\xda\x8f\x0c\xf0\x19 \xa7\x8b\xec]\x99//\xda9\xc9\x11\xadrR\xf09\xcd\xe7U9\xcb\xeb\xcf>\xba\xa6\xe7\xeebqw6\xfbHc\xd9\xb6b|\xd2\xa6\xf8\x01\xfdE+1\x1c\xd2\x9aO\r=wv\x1f\xde\xdd\xd9\xbdK\x0b&\xe9\xdd\x8d\xa8/.\xd2\xa6\x9e~\xf6\xd1x|\xf7\xa7\x9biF\x88\xcc\xb2\xfa.}<\xbe(\xce\x05\xf6\xf9\xef\xdf\xd6\xc5\xc5E^\xff\xfe\xa6\x17\x1d\xeat]7U\xfd(]U\xc5\xb2\xcd\xeb\xc3tR\xd5\x84\xf5\xa3tw\xf5.m\xaa\xb2\x98\xa5\x18w\xd1\xa21\xde\xd4\x15\xdc\xaa\xfeh\x18%~\xaa\xe5\xa2Z7yu\t\x1a\xb4\xf3\xa2\x19s\x97\xe3I6}{QW\xeb\xe5\xec\xb3\x8f\xeb|\xf61\x817M\xd7\xed`\xcb\x8f?JyV\x88\\\x07\x1f\xa52+\xf2;h3\x8c\xca\xe3fZ\x17\xab\xd6\x9b\xb9\xbb?\x9d]f\xf2\xe9&\x8e\xc0s\xa2\xb4\x1c7y\xbb^m\xfd\xe2\xcd\xad\xf10\x1b=+\xf2r\xf6(5\x13:\xa2\xcf\xe9\xb9{\x97f"\xad\xce\xd3v\x9eK\xbb\xf4\x1c\ro\x01\xf4\xfcYU/\xb2\x96@\x1aFR\x98\x00z\xce\xdf}-\xc0\x93u\xdbVK\x02\xdbc\x0f\xc0\'\xd8\xfa)\xfa`\xe8\x86\xb9\xd2-y5={z\xe7\xe6n\x9abyQ\xe6\'e1}\xfb\x88@\xaes\xfa\xcc<\xd4\xc9\xacZO\xca|{\x8a\xef\xd3E5\xcb7C\xfc%w\x0e\x87\x1b\x90>\xe1\x99\xdd0\xb1aZ\x89\x863\x9f\x8b\x8c\xe8\xaf\xcc{\xdfd:\x89\x02\x9e\xdb\xa8B<\xddw)g\xba\xf35s\xa6;\x943\xdd\xf9\x9a9\xd3\x1d\xca\x99\xee|\xcd\x9c\xe9\x0e\xe5Lw\xbef\xcet\x87r\xa6;_3g\xbaC9\xd3\x9d\xaf\x993\xdd\xa1\x9c\xe9\xce\xd7\xcc\x99\xeeP\xcet\xe7k\xe6Lw(g\xbas\x9b\x9c)\x9e\xce\xbbdf(p\xfd\x9a\xef\x12_\xed~M\xbe\xda%\xbe\xda\xfd\x9a|\xb5K|\xb5\xfb5\xf9j\x97\xf8j\xf7k\xf2\x15YX\n\x8a\xbe\xe6\xbb\xc4W\xbb_\x93\xaf\xc8tS\xb0\xf15\xdf%\xbe\xda\xfd\x9a|\xb5K|\xb5\xfb5\xf9j\x8f\xf8j\xefk\xf2\xd5\x1e\xf1\xd5\xde\xd7\xe4\xab=\xe2\xab\xbd\xaf\xc9W{\xf7Hm\xb3V\xcfg\xe4}\xde\x02\x08\xd9\tn\xbf\xa1\xc9\xa3\xe1\xafz&d\xb1\xb0&\x04\xbf\xfe\xc8\x84\xfc\xc8\x84P\x93\xc1\xa7\xfb.\x89\xfa\x8fL\xc8\xc0\xd3}\x97\xf8\xeaG&d\xe0\xe9\xbeK|\xf5#\x132\xf0t\xdf%\xbe\xba\x95\xe5\xc0\xd3}\x97\xf8j\xefk\xf2\xd5\x1e\xf1\xd5\xde\xd7\xe4\xab=\xe2\xab\xbd\xaf\xc9W{\xc4W{_\x93\xaf\xf6\x88\xaf\xf6\xbe&_\xed\x11_\xed}M\xbe\xbaG|u\xefk\xf2\xd5=\xe2\xab{_\x93\xaf\xee\x11_\xdd\xfb\x9a|u\x8f\xf8\xea\xde\xd7\xe4\xab{\xc4W\xf7\xbe&_\xdd#\xbe\xba\xf75\xf9\xea\x1e\xf1\xd5\xbd\xaf\xc9W\xf7\x88\xaf\xee}M\xbe\xbaG|u\xefk\xf2\xd5=\xe2\xab{_\x93\xaf\xf6\x89\xaf\xf6\xbf&_\xed\x13_\xed\x7fM\xbe\xda\'\xbe\xda\xff\x9a|\xb5O|\xb5\xff5\xf9j\x9f\xf8j\xffk\xf2\xd5>\xf1\xd5\xfe\xd7\xe4\xab}\xe2\xab\xfd\x0e_Q\xab\xf8\xd3}\x97\xf8j\xffk\xf2\xd5>\xf1\xd5\xfe\xd7\xe4\xab}\xe2\xab\xfd\xaf\xc9W\xf7\x89\xaf\xee\x7fM\xbe\xbaO|u\xffk\xf2\xd5}\xe2\xab\xfb_\x93\xaf\xee\x13_\xdd\xff\x9a|u\x9f\xf8\xea\xfe\xd7\xe4\xab\xfb\xc4W\xf7\xbf&_\xdd\'\xbe\xba\xff5\xf9\xea>\xf1\xd5\xfd\xaf\xc9W\xf7\x89\xaf\xee\x7fM\xbe\xba\xff\x90\xc2D\x8e")d\xbd\x7f\x1b\x06\xbbE\xc8\xfa\xf8w\xdd\xde\xee\x07\xa7m\xb1\xa0|\xbf\x86\xa7\xf2\xc77\x1c\xa0\xd2\x82\xcf\xfd\x87\xf4?2\xed\xfa\xdb-\xc6\x83\xa7\x03\x87V\x9f\xf8m\ni\xf4\xb7\xaf\tg\x97^\xa5\xff\x11\x1c\xfd\xedk\xc2\xd9\xa3W\xe9\x7f\x04G\x7f\xfb\x9ap\x94*\x04G\x7f\xfb\x9ap\xf6\xe9U\xfa\x1f\xc1\xd1\xdf\xbe&\x9c\xfb\xf4*\xfd\x8f\xe0\xe8o_\x13\xce\xa7\xf4*\xfd\x8f\xe0\xe8o_\x13\xce\x03z\x95\xfeGp\xf4\xb7\xaf\t\xe7\x80^\xa5\xff\x11\x1c\xfd\xedk\xc2\xc1\xab\xf4?\x82\x83\x1f\xf4\xbf\xaf\x07gW\xb9\x98B)\xfd\xedk\xc2Q.&8\xfa\xdb\xd7\x84\xa3\\Lp\xf4\xb7\xaf\tG\xb9\x98\xe0\xe8o_\x13\x8er1\xc1\xd1\xdf\xbe&\x1c\xe5b\x82\xa3\xbf}M8\xca\xc5\x04G\x7f\xfb\x9ap\x94\x8b\t\x8e\xfe\xf65\xe1(\x17\x13\x1c\xfd\xedk\xc2\xc1\xab\xf4?\x82\x83\x1f\xf4\xbf\xaf\x07gO\xb9\x98\xf4\xbc\xfe\xf65\xe1(\x17\x13\x1c\xfd\xedk\xc2Q.&8\xfa\xdb-\xe0X;\xba\xbd=\xd0\xea\xf1\xddYq\x19\xf9\xee\xf1\xddeE\xcb\xe3\x9do\x1e\xdfmg\xdd\x8fz\x9f\xe0\t\x16\xea\x8bEv\x917w\xf3w\xd3\xbc\x1c\xaf\x96\x17j\xa0\xf1\xa75\xcf\xdd\xb5\xf9\xd0D\x9bE\xf9\xfc\xdd\xaa\xaa\xdbT_\xd5ErJ\xc1\xd8Er\xfc^-yy\xf5\xb3\x8f~b\x9d\xd7\xd7\xb4\xc4\x9bm},/\xee\xf1\x8b\x1f\xdf!\x80XI\'<\x83\'\x864V\xd1\x1d\xce\xf8\xeb\xeb\xa1,o\xbe?\xc6x/\x8apg*\xe8O3Y\xf4kF\x8b\xcc\xf4\x97\x99\xdc\xc7\xcd*[b\x00\x1f\xf37\xbf\xff\x8a\x86\xf6\xf1\x111\x07}\x8c\xaf\xf9\xd3tZfM\xf3\xd9G\x8b\xacX\xcah\x81\xc8\x1b|e\\$4\x9d\xe7\x99\xe9\xf71w)\xbf\xe3\xa1/\rm\x80\xf6vV\x16\x17\xb4\xe2>\xcd\x99<<\xf6G\xbb;p\xc0>:\xfa\x9b\xff\xa3\xbf\xe7\x1f\'D\xe7\x04\x80\xde\xe4\xe7}^\xff{\xff\xd3\x7f\xf3\xdf\xfb\xa7\xfe\xf5\x7f\xe2\xdf\xf9\x00\x10\xff\xfc\x7f\xf1\xf7\xfd+\xff\xfa?\xfb\xf7\xfe\x95\x1f\x00\xe2_\xfd\x17\xfe\xc5\xbf\xf3\xef\xfe\xab\xff\xd5\xbf\xe2\x9f\xfe\xe7>\x10\xc8?\xf4\x1f\xfd\xcd\xff\xd3\x07\x82\xf87\xfe\x8d\x7f\xe8?\xfa\x00\x10\xff\xfc\xdf\xf1o\xfe%\x7f\xfb_\xfe\x0f\xff\x83\x1f\x00\xe2\xef\xff{\xff\x95\x7f\xf3\xef\xff\x9f\xfe\x8e\xff\xe1\x03@\xfc\xe3\xff\xf4\xdf\xf2\xcf| \x08L\xeb\xbf\xfa7\xfeC\xbf\xfa\x03\xc1\xfc\xab\xff\xd2\xbf\xf4W\x82&\x1f\x00\xe2\xef\xfd\x15\x7f\xf3\xbf\xe2\xbdN\xbfB\\\xe8\x87\x8a\x10\xfe\x13\x11\xa2o\xdf\x0b2\xc5\xca\x0e\xec{\xbc\xb7\xb7\xb3\xfb\xf0\xee\xce\xee]$\xe8\xbf\x16\x80\xb6\x9a^]\xdf\xdb\xa3?\xbf&\x80\xc5\xc5\xd7|\xb1)\xab\xf6k\xbe\xfa\xb4\xce.\xc8\x8e>\xcd\x96\xd3\xfck\x82\xa0\xc0\xf7\xeb\xbdw\x7fo\xfc\x10i\x91\xaf\xf5\xf6\xee\xc3\xfb\xe3\x9d\xafM\xea\xedO\xef?\xf8\x80\xce?\x0c\xf5W_<\xd17\xe9\x07X\x9c~\xe1\x9f\x04\xe7\xbd\x00Qj\x87\xc1\xd0k\xef\xf7\xde\xcfKV\xffv\xb5^\xce\xd2oWm^~M\x08\xbb\x9fRB\xec\xeb\xbdy0:xp\xf0\x01\x0c\xbb\xbb;\xda\xdb\xbb\xf7\x01\x00\xb6\x1f|z\xffC$\xe6\x83G\xf0\x8dq\xfd\xd7\x9d\x83\x9f\x9f\\\xff\x92\xbc\xeeIu\xfd5\xdf\xc6\xea\xed\xd7zqwt\x7fg\xe7\x03\xb8\xe5\xc1\xfd\x0fy{\xfb\xc3^\xffP\xe4\xbf1V\xa7\x1c:\x83\xa1\xd7\xde\xeb\xbd\x9f\x9f\xac~|A\x9f\xa6\xdf\xc9\x96y\xfa\xa4\xac\x96\xb3\xaf\xeb\xd0|\xfa\xb5]\xc8\xd1\x83\xfd\x0f\xd1\xb1\x9f\x8ev\x1e|\x08\xdf\xdd\xbb\xb7\xf7!\xdd\x7f(\xfa\xdf\x18\xdb\xd3\xf2\x0f\x83\xa1\xd7\xde\xeb\xbd\x9f\x9fl\xff:\xaf\xf3e\xd1~]\x15\x8f\xc5\xc5\xaf\xf5\xe2\xbd\xd1\xc1\x07\xb2\xdb\xfd\x87\x1f\xc2\xed\xdb\xbb{\xf7>\xa4\xff\x0f\xc5\xff\x1bc\xf7\xaf\xcb\xad\xff\xbfb\xf7[\x8f\xfa\xa4\xaa\xca\xf4\xbbUy\xfe5\xa9v\xef\xebj\x97\xdd\xd1\x87z\x15;{\x0fn|\x7f\xf8\xfd\xed\x07\x1f\x14\x00|(\xfa\xdf\x18\xbb\xd3";\x83\xa1\xd7\xde\xeb\xbd\x9f\x9f\xec\xfe\xa6h\xb3e\x93V\xe7)\xa5\xc6\xd2\xd7\xebe\xba\x9d~\xfbz\x95\xd7\xb4\xb8\xf15A\xee=\xf8\xfa~\xe5\xe8\xfe\x071\x11\x01\xd8\xf9\xb0\xc4\xcd\xfe\x07E\xb1\xd4\xff\x87\r\xe0\x1b\x93\x82\xaf\x9b5\xfb\xf9)\x05\x9fW\xe5,}\x96M\xdb\xaa\xfe\xba~\xce\xbd\xaf=\xe0=\xf2T>(\x1e\xdc\xfdt\xb4{\xff\xde\x98\x80|M\x00\xdb\x9f\xde\xdb\xff\xf4\x03\xde\xff\xe0\x11|clO\x0b\xb3\x0c\x86^{\xaf\xf7\xbe\x01\xb6/\xdf\xee\xec<\xf8\xba\xaf\xff\x9c0}\x91Q<\xfb\xaa\x98\xce\xf3\xe6k\x82x\xb8\xff\xf5\xbd\x9d\x83\x0f\xf2\xce\xc9\xdd8\xd8\x1b\xdf\xfb\xdaI\xf2\xed\xdd\x9d\x07\xe3O\xbf\xf6\xeb\x1f\x8a\xfe7\xc6\xf0\xbb_\x17\x83o\x80\xe3\xff?\xa8\xe8\x9fW\xd9,\x9f}\xcd\x97\xf7>\x80\xd9\x1f|\x88[q\xef\xd3\x0f\xf1\xcc\xb7w\xef\xef\xee}\xc0\xfb\x1f\x8a\xfd7\xc7\xeb_7\x95\xf0\r\xf0\xfa\xf9\xee\xc1\x03R\x19\xbb\xbb\xbb;_\x17\x8b\x15\xad\x85.\xb2\xb6\x98~\xcd\xf7?\x80\xed\xa7Y\xd1\xcc\xf3\xe5_\xfc76\xe9\x05\xb9:_\x13\xca\xde\xa7_\xd7\xb1?\xf8 \xaf\xfa\xe1\x83\x07\x1f\xe0\x9c\xec\xee\xed}\xc0\xdb\x1f\x86\xf97\xc7\xfa?\x87k\xb1\xd7\xeb\xf5}\x8aj\xee=\xfc\xba ~.\x14\xfd\xd9bQ\xd5mV\xa6\xaf\xaaE\xb6\x9c~\xdd\\\xfd\xee\xd7\x8d\xa3\xee\x8f\xf7\xbf6\xd7\xec\x8e\xf7\xbe\xb6c\xb2\xbd?\xde\xfd\xda/\x7f\x08\xd2\xdf\x1c\xab\xffh\x01\xf6}^}\x95\xb7u\x95\xbe\xca\xf3\xf2\xeb:\xf1\xbb_W\xab\xef\x8ev\xf7>\xc4\t\xfe\xf4\x83\xde\xde&\xa5\xfe\x01\xaf\x7f(\xf2\xdf\x1c\xbf\x7f]\xf2\x7f\x03\xfc\x9e\xed\xde\xa3E\xbd\xdd{\xbb\x0f\x0f\xbe\xae\xa2\xfb\xff\xbcWC\x96\xedk\xbe\xb9K\x9e\xf1\xfd\x87\xe3\x83\xaf\xcdC\xbb\xb4$\xfa\xe0C\\\xf3\x87\xe4\xd8\xef}\xed\xb7?\x18\xffoN\x06\xbend\xf5\r\xc8\xc0\xf5\xbb\t\xb1\xff\xd7E\xe0\xe7B\xe5?\xc9\x9a\xb7y;\xc9\xca2}\xddf\xf5\xd7\x84\xf2u\xd5\xce\x87\xac1\xed\x8c\xf7\x0f\xbe\xee\xbb\xdb\x94\xa1\xdc\xfb\xba/\x7f\x08\xd2\xdf\x1c\x97\x7f]&\xfd\x06\xb8\xfc\xff\x83\x9e\xcd\x93\xe2m\xb1,\xd2\x97Y\xdd~\xdd\xa4\xfc\xde\xd7%\x18-\xde\x7fz0~x\xef\xeb\xd2k\xf7\xe0\xe1\x07p\xdc\xf6\xbdO\x1f<\xfc\x80\xde?\x14\xfbo\x8e\xe3\xff_\xb3\x18\xfb\xde\xa8\xff\\p\xfc\xeb*\xfdb=\x9d\xa7\xaf\xd7\xcd\xbc\xf8\x9a0v\xbf~J~\xe7\x03\x13}\x0fF\x07\x07\xbb\x1f\xf0\xfe\xf6\xde\xc3\x87\xfb\x1f\xf0\xfe\x07\x0f\xe0\x9b\xe3\xfb\xaf\xebM\xff\xfc\xd4\xf4O\xeb\xf4\xbbY\xdb6\xe9W\xab\xaf\t\xe1\xc1\xd7\xf5\xe1\xef\x8f>\xfd \x9e{0\xba\xb7\xff!,\xb7\xfb\xe9\xfd\x0f\x11\x99\x0fE\xff\x9b\xe3\xf8\x9f\xc3\x95\xd7\xff\x0fr\xfcw\x8br\x96~Y\x17\xf4\xdd\xd7\x84\xf0\xb53\xc2\xf7F\xbb\x94\xd3\xfe\xf4\xe1\xd7%\xd7\x07i\xd8\xed{;\x07;\x1f\xd0\xf9\x87"\xff\x8d\xf1\xfb\xd7\x8eD~~\xf2\xfb\xb7\x8b\x0brk\xaai\x91\x7fm_~\xf7\xd3\xaf\xcb\xf1\x94f\xa1\x9c\xf8\x07p\xed\x83\x11-\xfb}\xc0\xfb\x94\xaa\xdc\xff\x90\xf7?x\x00\xdf\x1c\xdb\x7f\xdd\xc5\xcf\x9f\x9fl\xff\xb2h\xda\xaa\xcc\xeb\xec\xeb\xe6\xe6\xbf\xf6R\xce\xbd\xd1\x83\x0f\xe2\x18J\r~\x90_\xb3\xbd\xfbp\xe7C\xde\xffP\xfc\xbf9\x8e\xff\xbaZ\xe7\x1b\xe0\xf8\xf3\xdd\x83\x07\xbb;\x0fvI\xfb|]\xb9\xfb9L\xcf_\xc1\xc7iVy\xf9\xb5W\xa6\xf6v\xben,\xbb\xff\xe9\x87,\xfa\xefSV\xfc\xc1\xd7~{{\xef\x03R\xea\x1f\x86\xf87\xc7\xf5_7\x9e\xfa\x06\xb8\xfe\xff\x83z~w\xe7 \xfdv^W\xf9\xd7\xe5\xf4\xdd\xaf+\xdf\xbb\xa3{\x1f\xb4\x8c\xf9\xe0\xd3\x0fy{\xfb\xfe\x07\xbd\xfe\xa1\xc8\x7fs\xec\xfeu\x17C~~\xb2\xfb\xab\xf9\xf5\xa2X^\xa4\xaf\xf2\xbcl\xd2mb}\xca\xd17\xe9/L\xdf\xe0\xe7\xd7\x04\xfau\xed\xec\xbd\x0f\xe1\xa0\x0fy\x97b\xd9\x0fx\xfb\x83^\xfe\xe6\x18\xff\xeb\x1a\xd8o\x80\xf1/\xaa\xe5\xc5|]|]\xcd\xf7s\xc1\xf8O\xea<{\x9b\x1e_e_7\x88}\xf0u\xe9}\xef\xc1\x07\xb8\x05\x14\xbc\xde\xdb5/\xd3\xbb\xef\xf5\xf2\xf6\xde\x8319\xf3_\xb3\xeb\x0f\xc2\xfb\x1bcsz\x1dP\xe8\xad\xf7z\xedo\xff\x9b\xff\xc9\xbf\xe9_\xf9[\xff\xa5\xbf\xf8\xef\xfb\'\xbe&\x80\xaf-^\xff\x9fx\xed\xdeh\x7f\xff\xeb\x8a\xff\xee\xbd\xdd\xd1\xfd\xfb\x9f\x8e\x1f<\xf8\xba\xccA?G{\x0f)\xc6\xfc\xda\xbc\xb9}ow\xef\xd3\xdd\xf1\xa7\x07_\x17\xc0\x87\x0fB_\xa3\x1f`k\xfa\x85\x7f\x12\x90\xaf\x03\x85\xdez\xaf\xd7\xfe\xcd\x7f\xefk3\xf6\xee\xc1\xd7U\xdb\xff\x9fx\xed\xd3\x9d\xd1\xbd\xfb_\xd7\'|p\xff\xe1h\xefS\x8a \xf7\xbf.W<\xd8!\x08\x0f\xf6\xc6\xf7\xbe6\x84\xed\xfd\x87\x0f\x1f>\x18\xef\x7fm\xd5\xfb\xe1\x83\xd0\xd7\xe8\x07X\x9a~\xe1\x9f\x04\xe4\xbd\xa0\xec}]\x05\xd3qP\xde\x1f\xc0\xff\'=\xf3\'\xeb\xa6M\xdf\xcc\xf3\xf4I\xb6|\xfb5a\xec\xde\xff\xba\xab\xd7\xbb\x945\xfc\xa0\xac\xdd\x83\xd1\xa7\x07\xa4\xd1\xbf\xf6\xfb\xdb\xfb\xb4\x9e\xfa\x01\xef\x7f\xf0\x00\xbe1\x8fe\xef\x01\x01\x00\x1cz\xef\xfd^\xfcp\xc7\xfc\xff\x83|\x0f\x96\x7fsE\xd9\xf6|\x96\x9e\x14\xf5t\xfdu\xa3\xd0O\xbf\xae\xd6\xbf?\xba\x7f\xf0\xe9\x07p\xce\xa7\x94\x0by8\xde\xfb\xda\xef?\xd8\xbf\xf7\x01o\x7f(\xf6\xdf\x1c\xdf\x7f]\xdd\xf3\xf3\x93\xef\x9f\xd5\xeb\xa2M/\x9b\xf4$[\xce\xbenPz\xff\xe1\xd7|q\x7f\xb4\xbf\xf7!\xeavo\xf4\xf0\x83\xf2\x7f\xdb\xb4*\xfa!\xfd\x7f(\xfe\xdf\x1c\xd7\x7f\xdd\x19\xf8\x06\xb8\xbe|\xbb\xb3\xf3\xe0\xeb\xbe\xfes\xc1\xf3\xa7\x8b\xaa-N\xaab\xf9uu\xfc\xee\xfe\xd7]\xdd\xd8\'\x15\xfd\xf5\xd9eo\xff\xc1\xf8\xde\xd7~{\x9bb\xae\x0fX\x95\xfa0\xd4\xbf1N\xbf\xf7u1\xf8\x068\xfd\xff\x83\xfa\xfdy6\xbbN\x8b%e\xdag_\x13\xc2\x83\xaf\xabZ\xee\x8d\x1e~\x90+L\xca}\xe7\xe0\x03\xde\xdf\xde\xdd\xd9\xdf\xfb\x80\xf7?\x14\xffo\x8e\xe5\xbfn\xaa\xe4\x1b`\xf9\xf3\xdd\x83\x07\xbb;\x0fvwww\xbe.\x16?\x17l\xff\xc1y\xf6\xdd\xfd\xaf\xeb\xc7\xdf\xfb\xa0\x15\xcd\xbd\x07\x0f\xc6\x14A~\xcd\xb7\xb7\x0f\xf6\xc6\xe4\xd2|\xcd\xb7?\x0c\xf3o\x8e\xdd\xbf\xeeB\xde7\xc0\xee\xff\x1f\xd4\xf0XCM?\xcf\x17_\xd7\x99\xd9\xff\xbaK\x0c\xbb\xa3\x07\xfb\xfb\xe3\xbdO\xbf.\xb1\xeeS~\xf1\xeb\xb3\xdb\xf6\xee.yC_\xbf\xf7\x0f\xc5\xfe\x9bc\xf7\xaf\xebK\xfe\xfcd\xf7\'Y\xf36o\'YY\xa6\xaf\xdb\xac\xfe\x9aPv\xef}\xdd\xf4\xd8\xee>\xe5Y>$\xe6\xbb?\xba\xf7\xe9\xfe\x07\xacin\x1f<$=\xfd\xf5\xdf\xff\xe0\x01|s\x9c\xffuM\xec\xcfO\xce\x7f]\xa5_\xac\xa7\xf3\x0f\xca\xd4\xec\xed}\xdd\x11\xef~:"\x9e\xfb\x00\xb6\xd9\xbd?\xda\xdf\xdd\xff\x00\x00\xe4\xcf\x7fP\x8a\xf1\x83G\xf0\xcd1\xfe\xd75\xb9??\x19\xffiU\xae\xe6\x14\xc3\xfe\xc4:o\xbe.\x8c\xaf\xbd$E\xda\xf2\x83\xa2\xc0\xbd\xd1\x03\xf2s\x88\xf1\xbe\xe6\xfb\x94\xa2\xbc\xbf\xf7\x01\xef\x7f(\xfe\xdf\x1c\xd3\x7f]\x9e\xfd\x06\x98\xfe\xea\xea*\xcb\xb2\x9dO?=x\xf8u\xf9\xe0\xe7\x82\xf1O\xb3\x8b2\xff\xb8I\xbf[,/\xbe\xae{\xffu\xb37{\x1f\xc2t\xbb\x1f\xb0\x92\xb4\xbd\xb7\xfb\x01I\xce\x0fB{\x13\xaf\xbf\x17\xa0\xaf\xed]~\x03\xbc\xfe\xffA\x05\xff\xd5\xb2\xcd\x16\xb4\xf0\xba\x9d~^d\xcb6}I\x1eN\xf65a=\xf8\xba\xa4\xbf?z\xf0\xe0C\xdc\xe2\xbd\xd1\xce\x07\xb9\xd5\xdb\xf7\x1e|\x90\xa2\xfeP\xfc\xbf9\xe6\xff\xba*\xf6\xe7\'\xf3\x7f\xbe^^\xa4/\xab\xab\xaf\xf9\xfa\xfe\xc3\xaf\x1bE\xed?\x18}\x18\xc7\xdd\xfbt\x84\x1c\xcc\xd7\x07@9\x9cOw\xee}\x00\x80\x0f\x1e\xc27\xc7\xf4_\xdb\xce\xfe\xbcd\xfa\xe7\xeb\xe9\xdb\xeb\xf4\xa7\xaaY\x91M\xbf&\x88\x83\xaf\xcb\xf7\x9f\x8e\x1e\xec}\x08\xcf\xec\x8d\xf6)\x01\xf3\xf5\xdf\xdf\xde\xa7\xac\xe3\x07\xbc\xff\xa1\xf8\x7fc<\xbf\xffu1\xf8\x06x\xfe\x1bX\x97Z\xd5\xd9\xc5"k\x8b\xaf\xcb\x80`\xff\xaf\xeb\x95\xfft\xf56\xaf\xc9\xb3\xff\xe9\xfc*/\xbf.\x90\xdd\xaf\x1d\xd4\xee=\xf8\xf4\x03\xdc\xe4\xbd\x07\x07\xe3\xbd\xaf\xbd\xca\xb4;&\x95\xfd5\xdf\xfd0\xbc\xbf9\xc6\xff\xba,\xf7\r0\xfe\xff\x07\x95\xfd\xab\xbc\xad\xab\x14\xebT\r\xb9\xf8\xa7\xef\xda:_\xe4\xe9\xb7\xf3\xec\xeb\x02\xdc\xfb\xba|\x7f\x7f\xb4\xf7\xf0\xde\xf8\xfe\xd7^\xf4\xb9\x7fp\xf0\x01\x8aw{\xff\xc1\xce\xfd\x0f\xe9\xfd\x03\xb1\xff\xe6\xf8\xffG+\xb4\xef\xf3\xea\x93u\xbd\xa4\x0cN\xfa4o\x8a:\xff\x9a@\xf6\xbf.\xc9(.\xfc \x17y\x7f\xf4i\xd4\xdd\xb8\xed\xfb\xe4\xe4\xdf\xfb\x90\xfe?\x14\xffo\x8e\xeb\x7f\xb4P\xfb>\xafbu\x96\xbe\x9e\xb7\xe9\xefU4_\xd7\xc5\xb9\xffu5\rq\xed\xc1\x87p\xcd\xbd\x11\xbd\xfb\x01\xefo\xef~X\xff\x1f\x8a\xff7\xc7\xf5_7\xcc\xfa\x06\xb8\xbe,\xd6\x0fh\xb1\xfc\xe0\xfe\xee\xde\xd7\x95\xbd\x9f\x0b\xce\x7f\x925o\xf3v\x92\x95e\n!\xf8\x9aP\xee\x8dv\xf7\xbe\xf6:\xe1\xe8\x80\xb8\xf7\xeb{\xca{\xa3\xfb\x0f\x1e\x8e\xf7\x1e~\xdd\xf7\xb7\xf7(\x89O\xfa\xeak\xbe\xfe\xa1\xe8\x7fs\xcc\xff\xb5\'\xe0\xc3\x99\xff\xff\x83*\xffYU}0\xdb\xef~]}\xf3\x80X\xe6\xeb\xeb\xcb{\x0f\xf7?\xe0\xed\xed{;\x9f~\xc0\xeb\x1f\x86\xfa7\xc7\xed_\x97Y\xbf\x01n/\xdf\xee\xec<\xf8\xba\xaf\xff\\\xf0\xfaI\x995M1M\xf7\xbe\xb6[\xf8\xb5\x13\x98\xe4Z|\x00\xbb\xec\x92j\xfe\xf4k\xbf\xbd\xbd\xff\xe9x\xffk\xbf\xfda\x98\x7fs\x8c\xfeu\xd7\x08\xbf\x01F\xff\xff\xa0Z\x7f\x9e\xcd\x8a\xbcI_\x14\xed\xd7\r^w\x1f~]\x82\x1d\x8c\x0e>(\xfa\xdc\xdd\x19\xed|P\xf8I\xe2\xc2\xaf\x7f\xcd\xd7?\x14\xffo\x8e\xe7\xbfn\xce\xec\xe7\'\xcf\xbf\xcag\xe9\xb7\xab\x96r6\x97E\xf95a\xdc\xfb\xba\xc1\xeb\xde\x07\x06\x9f\x07\x1f\x940\xa1\x84\xcd\x07\xbd\xff\xa1\xd8\x7fs,\xff\xa35\xd9\xf7y\xf5\xf82+\xab\xe5\xd7|yw\xef\xeb2\xfb\xc1\xe8\xfe\xfe\x87\xb0\xcb\xbd\xd1\xc3\xfb\xf7?\xe0\xfd\xed\xfd\xfb\x07\x1f\xf2\xfe\x87\xe2\xff\x8d\xb1\xfb\xd7_U\xfbpvo\xe6\xeb\xe9<_^\xec\xde\xfb\xda\xf1\xdb\xcf\x05\xcb?\xa9\xf3\xecm:\xcb\xd2\'\xd9\xf2mz|\x91\x15_\x97\xff\xf7\xbe.\xf1\x1f~\x00\xeb\xd0R\xea\xd7~w\xfb\xc1\xf8\xde\xd7~\xf9C\x90\xfe\xc6\xf8\x9d^\x07\x14z\xeb\xbd^\xfb\xdb\xff\xe6\x7f\xf2o\xfaW\xfe\xd6\x7f\xe9/\xfe\xfb\xfe\x89\xaf\t\xe0kg\xe5\xfe?\xf1\xda\xfd\x11%\\\xbf\xe6\xbb\xbb\x9fR\xe6no\x7f|\xefkK\xc3\xee\xee\xee\xe8\xfe\xc3\xdd\xf1\xbd\xaf\x9fz$\x04(\x97\xf3\xe9\xee\xd7\x05\xf0\xe1\x83\xd0\xd7\xe8\x07\xd8\x9a~\xe1\x9f\x04\xe4\xeb@\xa1\xb7\xde\xeb\xb5\x7f\xf3\xdf\xfb\xda\x8c\xbd{\xb0\xfb5\xdf\xfc\xff\xc4k\x9f\xee\x8c\xee\xdd\xff\xba\xd6\xe9\xc1\xfd\x87\xa3\xbdO\x1f\x8e\x1f\xec\x7f]\xaex\xb0C\x10\x1e\xec\x8d\xef}m\x08\xdb\xfb\x0f\x1f>|\xf0\x01\xe9\x97\x0f\x1f\x84\xbeF?\xc0\xd2\xf4\x0b\xff$ \xef\x05\xe5\xfe\xd7\xe5\xb3o\xc0S\xf9\xff\xa0c\xfe\xbaJ\xbf\xc8\x96\xd7\xe9\x17\xd5\xb2\xa1o\xbf\xeeZ\xea\xd7\xcdS\xee\xed}\x88{\xbc\xfb!/o\xd3L}\xc0\xeb\x1f\x86\xf97\xe6\xa8|\xedE\xec\x9f\x9f\xec~R\x17SZ?\xfd\x90E\xa4\x87_7\xf2\xdf\xa7`\xf2C8\xee\xdeho\xf7\xde\x07\xbc\xbf\xbd\xfb\xe0\xde\x83\x0fx\xffC\xf1\xff\xe6x\xfekk\x9b\x9f\x97<\xff\xa6h\xb3e\x93V\xe7i;\xcf\xd3\xd7\xebe\xba\x9d\xbe\x99\xe7E\xf65\xe1}m?\xe7\xd3\xd1\xfe\xc1\x870\xd0\xde\xe8\xe1\xc1\x87\xad\xa4\xee?\xfc\x90\xa5\xd4\x0f\xc5\xff\x9b\x13\x80\xaf;\x03??\x05\xe0\xf3\xaa\x9c\xe5\xcb\xf4\xb4\xfe\xba\x1c\xff\xf0\xeb\xd2{woD\xd1\xe6\x07\xb0\x0c-1Q\xc6\xfc\x03\x00l\xef\xed=\xf8\x90\xf7?x\x04\xdf\x1c\xd3\x7f\xdd\xd4\xc87\xc0\xf43\n_\xef\xdd{\xb8w\xff\xc1\xee\xd7]\xde]\xd5\xd9\xc5"k\x8b\xe9\xd7|\xff\x03\xf8\x7f\x91\xc1\xb5O\x91D\xfd\xb8I\xcf\xab\xba]/\xbf\xeej\xeb\xde\xd7\xb7\xbd\x1f\x90P\xdc\xa5\xac\xcd\xd7~y\xfb\xe1\x07\x84\xb5\x1f\x84\xf67\xc7\xfb_\x97u\xbf\x01\xde/\xdf\xee\xec<\xf8\xba\xaf\xff\\\xa8\xfb/\xf2\x8b\x0c\xf1lNQ\xed\xbal\x8bUY\xe4_\xd7\xd9\xff\xda\xe2\xbe\xb7\x7fo\xfc\xe0\xb6\xab&\xbd\xb7\x1f\xee}\xc0\xcb\xdb\xbb\xf7w?@a\x7f\x18\xe6\xdf\x1c\xcb\x7fm\xca\x7f8\xcb\xff\x7f\xd0\xc7y\xbe\x9e\xbe\xbdN\x9f\x15u>\xad3\nq\xbf.\xc3\xef\x7f\xdd\xf4\xd9\xbd\xd1\xce\x879\x1a\x94@\xfd\xc0\xe8vo\xef\x03\xde\xffP\xfc\xbf9\xc6\xff\xba+$\xdf\x00\xe3\x9f\xef\x1e<\xd8\xddy@+%;_\x97\x0f\xbe\t?\xe7\xebf!/h\xc9\xb5M\xeby\xb1\xac\xbe&\x84{_{\x99\xe2\xc3\xb8\xef\xc1\xfe\xdex\xefk\xbfMN\xca\xd7\x7f\xf9\xc3\x10\xff\xe6\xd8\xfe\xeb\xa6\xd5\xbe\x01\xb6\xff\xff\xa0\xbe\x7f\x95\xb7u\x95\xbe\xca\xf3\xb2\xa1t\xce\xd3"[T\xcbY\xfayY\xb4?\xf8\x9a\x10\xbf\xf6\x04P\x88\xb8{p\xff\x03\x1c\xf4]Z\x16\x8e\x86\x98\xb7|\x7f{w\xe7\xfe\xfe\x07!\xf0\xa1#\xf8\xc6\xa4\xe0\xd3\xaf\x8b\xc1\xcfO)xB\n\xffmz|\x95]\x7fM\x00{\xbb_\xdb\xda>\x18\xed}P:|\xf7\xc1h\x9fV\\\xef\x7fm\x00\xdb\x0f\x1f\xdc\xdf\xfb\x80\xf7?x\x04\xdf\x1c\xd7\x7f]\xa3\xfb\xf3\x93\xeb\xb1x\xf5t\xdd|\xdd\xd7\xf7\xbe>\xb9?\x1d\xd1\xaf\x1f\xc01\xbb\xf7G\xf7?\x88\xe5\xa0\xea?\x08\xc0\x07\x0f\xe1\x9bc\xfa\x0f^\xb9\xfd\xba\t\xd1\xff\x0f\xe6tN\xb2f\x9e\xad\x8a\xb2\xfc\xda\xcb\xb6\xfb_W\xd1\x7f\xd8\x9a\xcf\x1e\xf9\x15\x9f~\xed\xb7\xb7w\x1f\xee\x7f@\xf2\xf2\xc3P\xff\xe68\xfd\xeb\xe7\x8c?\x98\xd3\xaf\xdfMv\x1f\x1e|\xdd\xf7\x7f.X\xfd\xc3}\x9a\xbd\xaf;\xe3\x9f\xde;\xf8\x00~yx\xef\xd3\x0fp\xa1\xf7\x1e\x1e|\xc0\xdb\x1f\x86\xf97\xc7\xe9_w\xa1\xf0\x1b\xe0\xf4\xab\xe9\xee\xa7_;]\xfds\xc2\xe8Y\xf36o\'YY\xa6\xf0h\xbe&\x94\xbdO\xbf\xee\x98w\x1f|\xfa\x01\xde3%\x0b)U\xf65_&7\x86\xd6\x95\x1e~\xdd\xd7?\x0c\xf3o\x8e\xdb\xbf.\xb3~\x03\xdc^\x16\xeb\x07\xf7>\xdd?\xb8\xbf\xfb\xb5W$\xff\xbf\xcb\xf3\xf7F{;_;[3\xfat\xefC\xf2\xec\xbb\xa3\x83{;\xe3\xfd\xafmc\xf6v\x1e|\xc0\xdb\x1f\x8a\xfd7\xc7\xfb_\xd7{\xfe\x06x\xff\xddO\x97\xbb\xf7\xee?x\xf8u\xc3\xb8\x9f\x13\xc6_\xd7\xcbby\x91>\xcd\x1bZ\xa3\xfa\x9a@\xbe\xee\x80?$K\xf2!\xdc\xb6\xf3\x01\xfd~\x08\xce\xdf\x1c\x97\x7f]\xdb\xfa\rp\xf9\xff\xe7b\xd4\xaf\xcf\xe2\x1e\x90\xdd\x9d\xaf\xedB~\xfa!\xc1\xde.-\xbe\x1e|\xed\xb7\xc9\x9f\xf9\xf4\x03\x96\xa0>\x0c\xf5o\x8e\xdb\xbfn\x8a\xe0\x1b\xe0\xf6\xff\x0f\xc6\xa9\xdf\x88+\xf3u\xb9}\xf7C8fo\xfc\xf0k\xbf\xbb\xfd`L\xbf~\xcd\x97?\x08\xebo\x8e\xcf\xbf\xae\xef\xf8M\xf0\xf9z}\x9f2\xb8\xf7\x1e\xfe\x7fJ\xb3\x7fhJ\xe6\xc1\x83\xaf;\xe9\x0f\xee}\xc8\x12\xd1\xa7\xf7w\xc7\xf7\xbfv\xdf\xdb\x94\xbb|x\xef\xeb\xbe\xfda\x98\x7fc\xcc\xfe\xb5G\xff\r0{\xb6{\xef\x1e-.\xdd#\xcd\xfeuM\xcb\xaa\xce.\x16Y[L\xbf\xe6\xfb\x1f\xc0\xf5\xd3\xach\xe6\xf9\xf2/\xfe\x1b\x9b\xf4\xa2*g_\x13\xca\xeehg\xefk\xeb\x9bOG\x0f\xee}\x88\x03\xbe\xb73\xfa\x94r\xe0\x0f\xee\x7f]\x00\xdb\x9f\xee\xd0\x1a+-\x93~\xcd\xf7?x\x04\xdf\x9c\x1c|\xed\xe0\xe9\xc3\xe5\xe0\xff{\xce\xcd\xd9bQ\xd5mV\xa6\xaf\xaaE\xb6\x9c~\xdd\x80u\xff\xeb\x8ey\xf7\xd3\xbd\x0f`\x9a\xfb\x0f\xc7{\x07_\xf7e\xf2\xe5\xf7\xc6\x0f\xbe~\x86\xe6\x830\xff\xe6\xd8\xfd\xe7pu\xf5b\xbd\xbb\xf3`\xf7\xfe\xc1\xde\xa7\x07\xff\x9f\xf2r\xbe\x11\x87\xfe\xeb\x92\xedC\xf2\x1d\x1f\xe2Uo\x7fH\xc7\x1f\xf2\xee7\xc7\xea_7\x01\xfe\r\xb0\xfa\xff\xf7\x924Y\x9d\xf2\xff\xcbl\xfa6}=\xcf\xf3U\xba\x9d\xdeO_\xe5y\xf95A\xee~]\xf7f\x9f\xf4\xec\xd7\xf6,>=\xf8\x808t\xef\xfe\xf8\xde\xd7\xee\xf9\x83\xd0\xfe\xe6\xb8\xfe\xebf\x0e\xbe\x01\xae\xcf\x1a\xe4\xdfw\xbe\xaeG\xf5s\xc1\xf7\xbf\x17%\xdf\x9b\xb4:OO\xb2f\xfe5a|\xddd\xf0\xee\xc1\x070\xcc\xa7\x1f\xe2=\xef\xef\x7f\x80\xef\xfeAh\x7fs|\xfeu\xd9\xf4\x1b\xe0\xf3\x8bjy1_\x17\xff_\xe2\xf3\x0fN\xd5\x1c\xec~]\xcf\x91\xde\xfc\x00V}@~3\xfd\xfe5\xdf\xde\xde\x7f\xf8\x019\xcd\x0f\xc3\xfc\x1bcuz\x1dP\xe8\xad\xf7z\xedo\xff\x9b\xff\xc9\xbf\xe9_\xf9[\xff\xa5\xbf\xf8\xef\xfb\'\xbe&\x80\xbd\xaf+!\xff\x9fx\xed\xc1\xe8\xc1\xc3\xaf;\xb5\xbb{\xf7G\xf7\xf6w>@\x89>8\x18=8\xa0\xb5\xa1\x0f\x08G\xf7\x1e\xee\xec\x1f\x8c\xef\x7fm\x08\x1f>\x08}\x8d~\x80\xad\xe9\x17\xfeI@\xbe\x0e\x14z\xeb\xbd^\xfb7\xff\xbd\xaf\xcd\xd8\xbb\x07_Wu\xff\x7f\xe2\xb5OwF\xf7\xee\x7f]7\xf0\xc1\xfd\x87\xa3\xbdO\x1f\x8e\x1f\xec\x7f]\xaex\xb0C\x10\x1e\xec\x8d\x89\xb7\xbe&\x04\xd2\xda\x0f\x1f>\x18\xef\x7fm\xd5\xfb\xe1\x83\xd0\xd7\xe8\x07X\x9a~\xe1\x9f\x04\xe4\xbd\xa0|\xed\x10\xf0\x1bpR\xfe?\xb9\xa2t\\R\xb2%[\xa6\xcf(\xc5^,\xbf.\x02\xf7\xbe\xee\xaa\xc2\xfd\x07\x1f`\xef\xc9/\xde\xf9\xda\xaat\xfb\xde\xc1\xf8\xe1\xfb\xbem\xdf\xfe \xbc\xbf1?\xe5\xc1\xd7\r\x84\xbe\tn\xff\xff\\*\xfd\xa4.\xa6\x94W\xfc\xa0\x9c\xe2\xd7U\xf2\xbb\xfb\x1f\x12=\xee\xee\x8ew?\xfd\xba/o\xd3\xb2\xdf\xf8\xe0k\xeb\xe5\x0f\xc3\xfc\x9bc\xf5\xaf\xaba\xbe\x01V\xbf\xba\xba\xca\xb2l\xe7\xd3O\x0f\x1e~],~.\xf8\xfd4\xbb(\xf3\x8f\x9b\xf4\xbb\xc8\xb8|M\x18\x9f\xee|]c\xb67\xa2\x8c\xf4\x07p\xce\xde\xe8\xde\xce\xee\xf8\xde\xd7~\x7f\x9b\xb4\xd3\xf8\xc1\xd7~\xfdC\xd1\xff\xe6\x18\xff\xeb&u\xbf\x01\xc6/\x8b\xf5\x8a\x98g\xff\xfe\xd7e\x82\x9f\x0b\xb6\x7fYf\xd7\x93\xeakg]\xbe\xf6\x1a\xc6\xfe\x87\xe4=> \xc1\xb7\xbd\xfb\xe9x\xf7k\xbf\xfdAh\x7fcL\xfe\xb5C\xeao\x82\xc9\xd7U3_g\xcb\x8b\xd9\xd7]\\\xff\xb9\xe0\xf2\x0fN/\xee}}\x8f`\xefC\x92t\x0f\xef\x8fw\x1f|\xdd\x97\xb7\xf7>\x1d\x1f\xdc\xfb\xbao\x7f\x18\xe2\xdf\x1c\xb3\x7f\xdd\\\xc87\xc1\xec\xc5\xfa\xc1\xbdO\xf7\x0f\xee\xef\xee}]E\xb7\xaa\xb3\x8bE\xd6\x16\xd3\xaf\xf9\xfe\x070\xfd\xa2Z\xbe\xcd\xaf\xd3E6[\xe6\xcd\xd7uiv\xbf\xae1\xdb\xdd\xff\x80\x04\xc9\xfd\xf1\xde\xd7~w\xfb\xe1\x07\xbc\xfcAX\x7fs<\xffu\xd72,\xcf\x7f\xdd\xc8\x8bx\xfe\xed\xce\xce\xd7\xce\x0b\xfd\\\xe8\xf6/\xf2\x8b,\xfd\xa2Z\x12\xab\x7f\xb1.\xdbbU\x16\xf9\xd7\x8dX\xef}me\xb1?\xc2J\x10y\xc1_\xfb\xfd]\x8a[\xbf\xbe\xbe\xdd\xfe\xf4\xfe\xee\x07u\xffa\xe8\x7fs\xac\xffu\x15\xed7\xc0\xfa\xe7\xbb\x07\x0fvw\x1e\xd0D\xec|]\xa3\xf3s\xa8\xeeg\xd4u\xb5L\xdfR\x082\xab\x16_\x13\xc8\x83\xaf;\xf0\xdd\x07\x0f>\x80}v\xef}\x90\xc6\xdf\xa7l\xfe\xd7~\xfb\xc30\xff\xe6\x18\xff\xeb\xf2\xed\xcf{\xc6\xbf*\xcaY\xda\xac\xf2\xb2\xfc\xbaN\xce\xde\xbd\xaf\x9b6\xb8\x7fp\xff\x03\x94\xf6\xfe\x071\xee\xf6.\xbd\xfe\xf5s6\x1f\x86\xfa7\xc7\xf7_\xd7\xe2~\x03|\x9f\xed\xde\xbbwo\x8f2\xbe\x0f\x0f\xben\xaa\xf2\xe7\x90\xef\xa7\x19\xadB\xe5\xcb\xbf\xf8ol\xd2\x8b\xaa\x9c}M(\xbb\xa3\xaf\xef\xf0\xde{0\xda\xb9\xf7\xe9\x07\xf0\xe0\xbd\xfd\x11\xcd\xe2\x07,\xf1oS\xda\x93Vb\xbf\xf6\xfb\x1f<\x82oN\x0e\xbe\xae\xcf\xfd\r\xc8\xc1\xff\xb7\xf5\xffA*\xae\xcf\xd7\xd5\xfe\xbb_\xdb\xe5\xfc\xf4\x03\x14\xe8\xde\x07d\x12\xb7\xf7\xee\x8d\xe9\xf7\xaf\xf9\xf6\x07\xa1\xfd\xcd\xf1\xfb\x07\xaf\xc6~}~\xa7\xbc\xce7\x91\xa9\xff\x1a}\x7f\x00\x9b\x7fX\xa6\xfe\xfe\xd7\x0e\xacv\x0fv>\xc0I\xd9\xdb\'\xf5\xfe\xb5\x13\xd6\x9f\x1e\x8c\x1f~\xed\x97?\x0c\xf1o\x8e\xd1\xbf\xaek\xf1M0\xfa\x87$sV\xc4p\xcb\x8b\xeak\xbe\xfd\xfa\xebsz]]g%\xe5-\x9b_\xb4\xce\xeb\xeck/4\x90g\xf3\xe9\xd7\xf5\xeb\xef\x8d\xf6\xee}\x88s\xbd7\xda{\xb0\xfb\x01\xefo?\xfc\xf4C\xb2A\x1f\x8a\xfe7\xc7\xfc_w\x02\xbe\x01\xe6\xff\x7f\x89W\xf3u\xdd\x92\x9f\xae\xde\xe6\xf5\xc7M\xfa\xd3\xf9U\xfe\xb5#\xdb\xfd\x9d\xafkf\x0f(\x15\xfe\xf5\x19\xf0\xd3Ow>\xe0\xed\xed\xdd\xfb\x1f\xd2\xf9\x87\xa1\xfe\x8d\xf1\xfe\xc3\xaf\x8b\xc17\xc0\xfb\xb3\xdd\x03\x8am\x1f\xee\xdd\x7f\xb0\xfbu\x19\xe0\xe7\x92\xf7/h\xbd\xb6M\xeby\xb1\xfc\xba\xe6\xe7`\xe7\xeb\xae\xa1\xc0l|\x08\xff\xec\x8e\xee\xed\x7f:\xfe\xf4k\xbf\xbf\xbd\x8b\x88\xf6k\xbf\xfe\xa1\xe8\x7fs\xec\xffu\x95\xee7\xc0\xfe\xe5\xbaj\xe6\xeb\x8c2\xe1_\xd7y\xf8\xb9X\xc9zB\\\xff6=\xbe\xca\xbe\xae\x93\xbf\xb7\xf7u}\xcd\xddO\xef}@\x12\xfc\xe1\xfe\x07\xb8\xe9\xdb\xe4\xe4\xdf\xdf\xfb\xbao\x7f\x18\xe2\xdf\x1c\xb3\x7f]m\xf3M0\xfb\x878\xf9?\x17|\xfey\x91-\xdb\xf4U1\x9d\xe7_\xd7@\x1c|}N\x1f}z\xffC\x12 \xbb\xa3\x07\x0f?d\xa5t\x97\xd2\x8d\x1f\xf0\xf6\x07b\xff\xcd1\xfc\xd7M\'|\x03\x0c\xff\xff\x12\xc7\xfek\xbe:+\xb2E\xb5\xa4\x15\xab\xb6.\xde~]\xf3\xf4u\x9d\xba\xdd\x9d\x0fa\xbe\x0f\xf2\xe9?\xb0\xe7\xaf\xff\xf27\xc7\xf3_\x97e\x7f\xde\xf3|C\n?\xfb\x9a\xef~\xfau\xe7}w\xefC\xf8\xf5\xe1\x87\xac\x8en\xef}\xc8\xdb\x1f\x86\xf87\xc7\xee?\x87+\xb3\xff\x9f\xcc\xd0\x7f\xb0\xff~\xff\xeb\xaa\xf5=r\xa1\xbf6\xc3\xec\xd2R\xd4\xd7\x162J\xd5\x8c\xef\xef\x0f\xbc}\xe3\xdb\x1f\x84\xf77\xc7\xe8_\x97\xc9\xbe\tF\xff\x10\xe7\xfd\xe7,C?\xaf\xd6M\x9eV\xe7\xe9\xac\xaa\x16_\x13\xc6\xfd\xaf\x9d\x99\xda\xa55\xfb\x0fIqP\x8a\x84\xb2\xe3{_\xfb\xfd{\x0f\x0f>\xe0\xed\x0f\xc5\xfe\x9bc\xfb\xafK\xffo\x80\xed\xff\xbf\xed\xce\xcc\xab6m\xb2\xf3\xac.\xbe&\x80\xfb_wYdw\xff\xc1\x07h\xcc\x07\xfb\x1f\xc0\xb7\xdb\x0f\xee}\xc0r\xea\x87!\xfe\xcd\xf1\xfc\xd7M\x1b\xc4x\xfe\xbd\x00|\xa0\xaa\xff\xb9\xf0gN\xca\xaci\x8ai\xba\xb7\xffu\x83\xfd\xfb_WC\xec\xee\x1c|\x80\x8a\xdc\xdd}\xf8\x01\x8b\x9f\xbb\x1f\xb2p\xfba\x88\x7fs|\xfeu\x15\xcc7\xc0\xe7\xff\xdf\xd6\xed\xd3yQ\x96E:\xa7\x05\xa8\xaf\ta\xff\xeb\xdaU,\xfc|}\x1d\xb9\xff!9\x92\xed\x07\x0f>\x80m?\x0c\xf1o\x8c\xe9\xe9\'A\x00 z\xf1\xbd\xde\xfcy\xcf\xf5\x8b\xac\xa1\x0fS\xca\xc8/?n\xd2\xf3\xaan\xd7\xcb\xaf\x9b\x9b\xfc\xf4\xeb\xda\xb8\xdd\xdd\x83\xf1\xc1\xd7\x9e\xc3\x83{\x1f\xe2\xdc\xdc\xbb\xff\x01K\xb6\x1f\x86\xf87\xc6\xff\xf4:\xa0\xd0[\xef\xf5\xda\xdf\xfe7\xff\x93\x7f\xd3\xbf\xf2\xb7\xfeK\x7f\xf1\xdf\xf7O|M\x00{_7Q\xf4\xff\x89\xd7\x0eF{_\xdb]\xbf\xbf?\xfat\x7f\xff\x03\xdc\xe6\xfd\x87\x14\xab\xde\x1b\xd3\x9f_\x13\xc0\xf6\xee\xbd}\xc2\x7f\xfc\xe0k\xaf\xcf~\xf0\x18\xf45\xfa\x01\xa6\xa6_\xf8\'\x01\xf9:P\xe8\xad\xf7z\xed\xdf\xfc\xf7\xbe6[\xef\x1e|]E\xfe\xff\x89\xd7>\xdd\x19\xdd\xfb\xda\xfe\xf9\x83\xfb\x0fG{\x9f\x12[}\xed\xd4\xdf\x83\x1d\x82\xf0`o|\xefkC\xd8\xde\x7f\xf8\xf0\xe1\x83\xf1\xfe\xd7f\xcc\x0f\x1f\x84\xbeF?\xc0\xd2\xf4\x0b\xff$ \xef\x05\xe5\xeb{\x0c\xdf\x80\xdfr\xfdn\xb2\xfb\xf0\xe0\xebj\xf0\x9f\xb3\x0cd\xb9\x9e\xbe\xbdNu-\xb5\xf9\x9a@\xbe\xae\xa3Ni\xeb\xaf\xef,\x7f\xc8\xda\xce\xf6\x07\xf5\xfcA/\x7fc^\xca\xee\xce\x1eA\x00 z\xf1\xbd\xde\xfc\x06\xb8\xfd\xffs9\x98/\xf2\x8b,\xfd\xa2\xaa\xcal\xfe5!\xdc\xfb\xba\xe4\xa6\x80\xf2\xeb\xb3\xcb\xfe\xc3\x0f\xf0\x18>\xe4\xdd\x0f\xc2\xfa\x1bd\xf2\xaf\x9b2\xfb\x06\x98\xfc\xff%\xa1\xe8\xd7\xd5\xca\x17\xb4\x8c\xda\xa6\xf5\xbcX~]\xbb\xf2\xe0k/g\xee\x8e\x1e\xec\xed}\x00\x03\xed\x8e\x1e\xee~\xfa\x01\xee\xfa\xee\xc3\xfd\x0fy\xfb\x03\xb1\xff\x06\xd9\xff\xebr\xef\xff\x7f\xd8\xffk\xbezU\x95\xe7\xe9EU\xce\xbe\xe6\xfb{\xf7\xbf\xee\xa0?\xa5\xa5\xfc\xaf\xcf;\x9f\xde\xdf\xff\x80\x1c\xe0\xbd\x87\x1f\xf0\xf2\x87!\xfe\r2\xfd\xd7\xf5\xa2\xbf\x01\xa6\xcfv\xef\xdd\xbb\xb7\xb7{\x8f|\xf9\xaf\xbb\xc4\xf5s\xc8\xf4m]\xac\xca<m\x8b\x8b\xbc\xfe\xbaf\xe3\xd3\x07_w\xe0\xbb\xf7F\xf7?\xfd\x10\xb7awgD\xe9\xbf\x0f\x00\xb0\xbdG&\xeb\x03\xde\xff\xe0\x11|\x83B\xf0u\xbd\xebo@\x08\xfe\xbf\xad\xf9\xa7Y\xd1P\xfe\xfd/\xfe\x1b\x9b\x0f\xd2\xff\x0f\xbe.\xfdvG{\x07\xfb\x1f\x90N9\xd8\xdb\xff\x00\x0e\xdc\xde\'\x06\xfe\xfa\x9d\x7f(\xf2_G\x00\xa2\x80\x88\xff\xbe&\n\xdf\x80\x00|Px\xfbs\x96\xcb\xb9*\xcaY:)\xab\xea\xeb\xf2\xfc\xeeh\xf7\xeb/x\x8f\xee=\xfc\x90\xbc\xc8\xdeh\x8f|\xf6\xaf\xff\xfe6\xf9\xca\x1f\xf0\xfa\x87\xa2\xff\r\xf2\xfd\xd75\xbf\xdf\x00\xdf\xff\x7f[\xf1K.s\x99_\xa5\xd7yV\x7fM \x07_[\x00v?\xc4q\xd8\xfb\xf4\xde\x07\xbc}\xffC^\xfe0\xc4\xbfA\xc6\xff\xda\x94\xffp\xc6\xbf\xa8\x96\x17\xf3u\xf1u\x99\xfe\xe7"\xa3\xf9\x84\xd2;o\xd3\xe3\xab\xec\xfak\x02 m\xff\xb5u\xcd\xeeh\xe7\xc1\xbd\x0f\x085wG\xfb\x9f\xee\x8d\x1f\xee~\xdd\xf7\xef\x1d<\x1c\xef\x7f\xed\xb7?\x14\xfbo\x8e\xe7\xbf\xf6\x10,\xcf\x7f\xdd\xfc(\xadX\xad\xd7\xf7\xef\xdf\xdf\xb9\xf7\xf0\xeb::\xff\x9f\xe4\xfa\xaf\x1d\xdd~\x10\xc7P:q\xffk\xaf\x8en\xdf\xdf\x1d\xef|\xedT\xec\x07\xe1\xfd\rr\xfa\xd7\xd5\xad\xdf\x00\xa7\xcfv\x0f(\xad\xf3p\xef\xfe\x83\xdd\xaf\x1bT\xfc\x1c\xba53\xea\xbaZ\xa6o\x8b\xe5\xc5\xacZ|M \x9f~@8\xfb\xe0\xe1\x87\xe4\x05wG\xa4c>`!j{\xef\xe1\xee\xf8\xc1\xd7~\xfdC\xd1\xff\x06%\xe0\xeb. ~\x03\x12\xf0\x8b\xae\xf2\xbd\xbd\xbdO\xf7\xbf\xf6r\xda\xcfYP\x8b\x14\x0e\xf3\xfe\xd7|\x7fw\xf7\xeb\x9a\xb7\xbd{\x1f\xb2\x06\xb4Ko\xd3\xef_\xf3\xed\xed\x87\x0f\xc7\x0f{o\xdf\xf6\xed\x0f\xc3\xfc\x1b\xe4\xf8\xaf\xcbm\xdf\x00\xc7_\xac\x11\xc8\xde?\xd8\xfb\xf4\xe0\xeb2\xc0\xcf\x89\x7f\x935o\xf3v\x92\x95e\xfa\xba\xfd\xdaA\xec\xd7w\x8d\xf7\x1e\xdc\xff\x00wa\xf7!-\xda>\xfc\xbaoo?x8\xbe\xf7s\x84\xf97\xc8\xf4_\xd7\xd0~\x03L\x7f\xfdnB\x0bW_w\xf9\xec\xe7\x84\xdf\xd7\xcd<}\x93\x97\xf9E\x9d\xad\xe6_\x13\xc8\xa7_\xd7\xb2\xee\x7f\xfa!\xae\xc1\x1e\xb9\xd6_\xff\xed\xed\xdd\x87\x1f\xa2\xa5?\x0c\xf5o\x90\xdd\xbf.\xb7}\x03\xec\xfe\xff\xedt\xe57\xb3Nu\xffk\xa7\xcdvG\x07{;\xe3\xbd\xaf\xcdC\xbb\xa3O\xef}H\xca|{\xf7`\xef\x83\xba\xff0\xf4\xbfA\x11\xf8\xba\x0e\xc67 \x02\x19\x05\xb6\xf7\xf6v\xef\x91\xda\xff\xba\x89\x8d\x9fC\x11h\xebbU\xe6i[\\\xe4u\xf35a<\xd8\xff\xda\x02\xb0?zx\xf0!\xb9\xef]Z\xb4\xda\xf9\x10\x00\xdb{\x0f>\x0c\x81\x0f\x1d\xc17(\x04_7\xb3\xf2\r\x08\xc1\xff\xb7\xed\x00/\xdb6\xab\xbc,\xbf\xae\x08\xec\xdd\xff\xba>\xe7\xa7\x07\x0f>\xc0i\xbeG\x0e\xfb\xd7\x8fR\xb7\xef\xed<\x18\x7f\xba\xb3\xf3\xf8\xeb\xbd\xfea\xa8\x7f\x83\x8c\xffu\xf5\xee7\xc0\xf8\xff\xdfNl.\xb2\x86>L\xa7\xe4\x04}\xdc\xa4\xe7U\xdd\xae\x97\xf9\xd7\x84\xb5\xbb\xf7uE\x80\xb4\xc6\x07p\xe1\x83\x9d\xf1\xc1\xd7~y{\xffC\xde\xfe0\xc4\xbfA\x01\xf8\xba\xf6\xf7\x1b\x10\x80r]5\xf3uF\x99\xf1\xaf\xcb8?\'A\xef\x87.b\xd1\x02\xe6\xd7v\xf7\x1e<\xf8\xf4\x03\xf4\xe6\xc1\x1e\xc5\xbc_;G\xb3O]\x7f\xed\x97?\x0c\xf1o\x8e\xdf\xf7\xbe.\n\xdf\x00\xbf\xff\x7f0\xc1\xf3\xa1\xbc~o\xef\xeb\x86W\xbb\xa3{\xf7?$@\xdd\x1d\xed\x7f\xfa`LQ\xe6\xd7}\x7f\xe7\xe1\x87\xbc\xfd\x81\xd8\x7f\x83\x0c\xffu\x9d\xeao\x80\xe1\xbf\x01\xd7\xfe\xff\x93\\\xbf\xbb\xffu\x85\xfc\xde\xa7{\x1f\xa0&\xefQZ\xf1\xd3\xfb_\xfb\xed\xf1\xee\xd7\x7f\xf7\x83\xf0\xfe\x06\xb9\xfd\xeb&\x93\xbf\x01n\xff\xffv6\xe7\x9bIh\x92o\xf3\xb5\x83\x99\xbd\x07\xa3\xfd\xbd\xfd\x0f\xf0\x8a\xef\x93\xd6\xbdw\x7f\xfc\xe0\xfe\xd7\x05\xb0w\xef!\xb9\xe5__\n>x\x04\xdf\xa0 |]>\xfe\x06\x04\xe1\x1bP\xfb\xdf\x84 |\xdd\x84\xccOWo\xf3\x9ab\xda\x9f\xce\xaf\xf2\xaf\x9d\xd5!5\xf05\xdf\xdc#U\xfa\xf5\x1d\x07\xa2\xf9\x07\xbc\xbd\xbd{\xffC:\xff0\xd4\xbfA\xe6\xff\xba\xe9\x84o\x80\xf9\xff_\x92\xd5\xf9\xba|{A\xbeO\x9b\xd6\xf3bY}M\x08\xf7F\x07\x0f\xbe\xae\xd3\xffpD\xec\xf3\x01,\xf4pt\x7f\x8f\x9c\xfe\xaf\xfd\xfe\x87\xbd\xfd\xa1\xd8\x7f\x83\x02\xf0u\xfd\xcfo@\x00\xfe?\x18\xe5\x16\x17\xe9\xef\x95\xcd\xd7\xcb\xeck\x02\xd8\xfd\xda\xc3\xfd\x94\xfc\x95\xfd\xaf\xcd0\x9f>|\xf0\x01)|R\xd6_\xdfe\xff0\xc4\xbf1N\xa7\xd7\x01\x85\xdez\xaf\xd7\xfe\xf6\xbf\xf9\x9f\xfc\x9b\xfe\x95\xbf\xf5_\xfa\x8b\xff\xbe\x7f\xe2k\x02\xf8\xda\x02\xf6\xff\x89\xd7herw\xff\xebFR\x07\xbb\xa3\xdd\x87\x1f\xb2\xb6\xff\x10z\xf4\xc1x\xff\xc1\xd7\x05\xb0M\x8b\xfa\xfb\xfb\xc4\xdd_;[\xf9\xc1c\xd0\xd7\xe8\x07\xb8\x9a~\xe1\x9f\x04\xe4\xeb@\xa1\xb7\xde\xeb\xb5\x7f\xf3\xdf\xfb\xda|M\xce\xcb\xd7|\xf3\xff\x13\xaf}\xbaCy\xb9\xaf\xeb\x1c>\xb8\xffp\xb4\xf7\xe9\xc3\xf1\x83\xfd\xaf\xcb\x15\x0fv\x08\xc2\x83\xbd\xf1\xbd\xaf\ra{\xff\xe1CR\xfa__\xf3~\xf8 \xf45\xfa\x01\x96\xa6_\xf8\'\x01y/(\xbb{_\xd7G\xfc\x06\\\x94\x8b5\xc2\xd3\xfb\x07{\x9f\x1e|],~.\xfc\x94\x93\xba\x98\xbe\xcd\xdb\xf4u\x9b\xd5_\x13\xc4\xee\xa7_w\xbdow\xe7^\xd4]\xb8\xdd\xdb\xf7)+r\xef\xebr\xdc\xf6\xfe\xc1\xf8\xe0k[\x83\x0fC\xfc\x1b\xf3Tv\xf7\xben8\xf8\r0\xfc\xff\xf7|\xf2\xb3\xc5\xa2\xaa\xdb\xacL_U\x8bl9\xfd\xba\x0b\xc4{\xfb_W\xc0\x0f\x0eh\xfd\xe7k\xb3\xcd\xa7;\x9f~\x80\x8a\xdd\xde;\xa0\x85\xdaO\xbf\xee\xeb\x1f\x86\xfa7\xc8\xf1_7\r\xfe\rp\xfc\xff\xc7s\x90\x1f\x9e\x86\xb9\xff\xf0\xeb2\x00\xb2\xe8\x1f\xb2vI\xef\xef\xdd\xfb\x00\x17e{\x97\x8c\xc5\xd7~\x9bz\xff \xec\xbfA\xf6\xff\xba\xa6\xd6\xb2\xff\xd7\r\xc1\xda\xaa\\W\xcd|\x9d-/f_Ws\xfe\\(\xfd\x0f^x\xdd\xbf\xf7u\xd5\xfd\xbd\x07\x07\x1f\xe0%\xec\xed\xef\xdc~\xd9\xa9\xf7\xf6\xf6\xee\xbd\x07\x1f\xf0\xfa\x87\xa1\xfe\xcd\xf1\xfb\xd7\xf6\xef\xbe\x01~\xff0\x07\xe7\x9b\xd0\xf4_\xf3\xd5of\xd9u\xff\x03\x94\xfd\x83\x83O?@]\xee\x8e(\x86\xfa\x80\xf7\xb7\xe9\x97\x0fx\xfdC\xd1\xff\x06\xb9\xff\xeb\xba\x19\xdf\x00\xf7g\xb4\xe2to\x8fPxx\xf0u]\xae\xff\xcf\x8b\x00e\xec\xee\x7f]wq\xef\x803\x8e_?\x95~og\xb4\xfb\xe0\xd3\xf1\xde\xd7\xd6\xe1{\xbb\x9f\x1e\x8c\xef}\xfd\xd7?t\x00\xdf\xa0\x1c|]6\xfe\x06\xe4\xe0\xa2Z^\xcc\xd7\xc5\xd7\x95\xc4\x9f\x0b\x97\xe7t\xb1\xca\xeb\xaaN\xab\xf3\xb4\x9d\xe7\xe9\xeb\xfc\xeb\xaeA\xdd\xdf\xf9\xba\xd6o\xf7\xe1\xee\x07p\xce\xee\xbd\x87\xe3\xfd\xaf\x1f\xe9\xde\xdf\x1b\xef\x7f\xed@\xf7\xc30\xff\x06y\xfek+\x9e\x0f\xe7\xf9\xcb\xcb\xdd\x87\x0f\xbe\xee\xeb?\x17\x1c\xffz\xbd|S|\xed\xb0d\xf7\xebf\xef\xf7\xee\x7f\xc0r\xce\x07E\xa4\xe4\xe2|\xc0\xdb\x1f\x84\xf77\xc8\xe2_\x9b\xee\x1f\xce\xe2\xd7\xeb\xf5\xfd\xfb\xf7w\xee=\xfc\xba\xc1\xdd\xcf\x05\x9b\x7fp,\xfb\xb5\xd7\xa9\xf6\x1e|\x80C\xbc\xfb`|\xf0\xb5\xdd\x90\xed\x87\xe3\xdd\xaf\xfd\xf2\x07\xa1\xfd\r2\xfa\xd75\xa3\xdf\x00\xa3\xcfh\xf9\xf5\xde\xbd\x87{\xf7\x1f\xec~\xdd\xc5\x82\x9fC?~\x915\xf4a:%_\xfe\xe3&=\xa7\xf4\xfdz\xf9u\xd5\xfc\xd7\xcf%|\x08\x17\xed>\xfc\x80\x97\xb7?$\xeb\xf8Ah\x7f\x83\xcc\xffu5\xec7\xc0\xfc\x1f\x96\xc2\xf9\xb9P\xf1\xbfWVgm\x9e\xbe,\xben\xdf\x07_W\xca\x0f>\xdd\xff\x00~\xf9\xf4\xfe\x87\xa4\x1b\xb7\xf7hm\xeb\xebG\xba\x1f\x86\xfa7\xc8\xea_\x97\xf6\xdf\x00\xab_Qb\xfe\x07\xf3\xfc\x80\x9e\xaf\t\xe3\xe7\x82\xdd\xe3\x1e\xcd{\x00\xf8\xda\x14\xfb\x90\x0c\xdf\x87d\x17\xb7?\xa4\xe3\x0fy\xf7\x1bd\xf3\xaf\xcba\xdf\x00\x9b\xff\x7f0\x1d\xf3\xc1<\xbe\xff\xe9\xd7\xd6+\xf7\xee}\xc02\xce\xee\xde\xee\x98\xd6\xba\xbf\xe6\xdb\xdb\xbb\xbb{\xe3{_{\x11\xe1\xc3P\xff\x06\x99\xfd\xe7p\xc5\xf5\xffsy\x98\x97ev=\xa9\xbe.\x9f\x7f\xdd\x91\xee~@6\xe3\x83T\xf9\x87t\xfc!\xef~s\xdc\xfd\xb5\x93\xac\xdf\x00w\xff\x7f\xcf9\xffv^\x96_\x9f\xbdw\xf7\xbe\xb6\x1a\x1f\xed\x93.\xfd\xfa\x8c\xba7\xda\xdd\xb9\xff\x01\xf9\xc2\xed{\xe4\x9e\xef\x7f\xed\xd7?\x14\xfdo\x90\xdd\xbf\xae\xdf\xf0\r\xb0{\xb9\xae\x9a\xf9\x9a\xbc\xf4\xaf\x9d\xa7\xfe\xb9`\xf9\x93\xba\x98\xbe\xcd\xdb\xf4u\x9b\xd5_\x13\xc4\xee\xce\xd7\xcd:~PXwow\xfc\xe0k\xaf\x02m\xdf\xdb\x1b\xef}m\xe5\xf8Ax\x7f\x83\xdc\xfeu\x99\xf5\x1b\xe0\xf6\xff\xef)\xf7\'YC\x8c>\xc9\xca\xf2\xc3\x98\xfd\xeb\xaa\x98\xdd\xd1\xa7\xe4\xf2~}\xbe\xd9\x1f=\xd8\xa3e\xd3\xaf\xed\xaf\xdf\xdbyHJ\xfek\xbf\xfe\xa1\xe8\x7f\x83l\xffs\xb8r\x9aQ\xae\xfd\xde\xde\xee=\xe2\xfd\xaf\x1b$\xff\x1cf\xdb\xdb\xbaX\x95y\xda\x16\x17y\xdd|M\x18\x0f\xbev\xbew\x978xg\xef\x03\x82\xbe\xdd\xbd\x11\xf9\xd4\x1f\xc0\x83\xdb\x94\x82\xfc \x04>t\x04\xdf\xa0\x10|]\x9bk\x85\xe0\xeb\xea1\xd2\xfd?/\xd7V\xf7w\xbf\xae\xb5\xa37?\x80i\xf7?=\x18\x1f\x1c|\xdd\xb7\xef\xdf\xfb\x80\x97?\x0c\xf1o\x90\xd9\xbf.\xe5\xbf\x01f\xff\xff\xa6[\xff\xc1\xdc\xfe\xe0\xeb\xa6\xc5\xf6?DASB\xf2\xe0k{(\xdb\xbb\x07\xe3\xdd\xaf\x9d\x8f\xfc \xbc\xbfAV\xff\xba:\xf5\x1b`\xf5\x1f\xec\xdf\xff\xf4\xc1\xc1\xd7\x9d\xf8\x9f\x0b6\xff\xc0|\xe4\xd7u\xe1\x88M\xef}m^\xb97~\xf8\x01,\xfe\xe0CR\xee\x1f\x82\xf67\xc8\xe2_;M\xf6\xe1,\xfe\xffI\xd7\xe5\xb8\xa4\xd05[\xa6\xcf\x8af^,\xbf.\x02\xbb\x9f~m\x97q\xffC\xd6%\x1f\xdc\xff\x80\xd4"1\xfc\xce\x07$6?\x0c\xf3o\x90\xe5\xbf\xb6\xa6\xf9p\x96\xff\x7fa\xc8\xfa\x1e\xf8O3b\xfa|\xf9\x17\xff\x8dMzQ\x95\xb3\xafI\x85\x87\x9f~]y\xdf\xbb7\xda\xff\xf4C\xd6rv?\x1d=|\xb0\xfb\x011\xe3\xf6\xa7\xfb\x07\x0f\xc7\x0fv\xbe\xee\xfb\x1f<\x82oP\x0c\xbe\xaeo\xf1\r\x88\xc1\xff\'5\xff\xd9bQ\xd5mV\xa6\xaf\xaaE\xb6\x9c~\xdd\x08d\xff\xfe\xd7U\xfd\xfb;\x07\x1f\xa0~\xf7w)Q\xfe\xb5\xdd\x15\xb2\x1b_\xfb\xdd\x0f\xc3\xfb\x9b\xe3\xf8\xfb_\x17\x85o\x80\xe3\xff\xbf\xe7\xce\x7f\xbb\xb8\x98\xa7\xaf\xabi\x91\xb7_\xd7\xa7\xff\xba\x99\x02Z\xc0\xfc\xfa*\xfa\xd3\x0fxw\xfbC<\x94\x0f\xc2\xfa\x1b\xe3rz\x1dP\xe8\xad\xf7z\xedo\xff\x9b\xff\xc9\xbf\xe9_\xf9[\xff\xa5\xbf\xf8\xef\xfb\'\xbe&\x80\xbd\xaf;\xd9\xff\x9fx\xed\xc1h\xff\xde\xd7U\xdb\x0f\x1e\x8c\xf6\x1e\xde\xff\x00\r\xf8`o\xb4s\xf0\xe9\xf8\xde\xd7N\x1dn\xef\xee\xed~z\x9f\x96h\xef}]\x08\x1f<\x06}\x8d~\x80\xa9\xe9\x17\xfeI@\xbe\x0e\x14z\xeb\xbd^\xfb7\xff\xbd\xaf\xcd\xd6\xbb\x07_W\xe7\xff\x7f\xe2\xb5OwF\xf7\xbe\xb6?\xf2\xe0\xfe\xc3\xd1\xde\xa7\xe4\x0e\x7f\xed\xb5\xfb\x07;\x04\xe1\xc1\xde\xf8\xde\xd7\x86\xb0\xbd\xff\xf0\xe1\xc3\x07\x1f\x10\xd4~\xf8 \xf45\xfa\x01\x96\xa6_\xf8\'\x01y/(\xbb\xf7\xbf.\xa3}\x03\xde\xc9\x15\xa5\xd4\x7f0\xcf\x0f\xe8\xf9\x9a0~.<\x94\x0f\xce\xab\x7f\xba\xf7u\xe3\x8f\x87\xa4M?\xc0S\x18\xed<\xd8\x1f\xdf\xff\xf4k\xbf\xbfw\xef\x03\xde\xfe0\xdc\xbf1Ge\xf7\xfe\xd7]\xf9\xff\x06\x18\xfe\xa2Z^\xcc\xd7\xc5\xd7\x05\xf0\xffMn\xff\xba\x1e\xda\xbd\x0fql\x0f\xc6\x0f\x1f|\xddw\xb7\xc1\xe7_\xdbg\xf9 \xb4\xbfA6\xbfG\x10\x00\x88^|\xaf7\xbf\x016?\xdf=x\xb0\xbb\xf3`www\xe7\xeb\x02Y\xd5\xd9\xc5"k\x8b\xe9\xd7|\xff\x038\xfe\x9bI7\xde\xdb\xf9\xba\x13\xb0;"\xa3\xfc\x01\xae\x05\xe5\n?@\xd1nS~\xec\x03:\xffP\xe4\xbfA\x01\xf8\xba\xfe\xe57 \x00\xff\x9fL4>Y7\xf3\xf4M^\xe6\x17u\xb6\x9a\x7fM {\xfb_\xd7\xbc\xde\xfb\xf4\xde\x07\xb0\xed=Z\x15\xfd\xfa\xe9\xed\xed\xfd\xfb\xe3\x83\xaf\xfd\xf6\x87a\xfe\rr\xfc\xd7\xb5\xb4\xdf\x00\xc7\xff\x7f/\xd1x\x9a]\x94\xf9\xc7M\xfa]ZNm\xbe&\x8c\xfd\xafK\xf1\xdd\x0f\xca\xda\xed\x11\xc3=\xf8\xdaoCA\x7f}Q\xf90\xcc\xbfAf\xff\xba\xaa\xf5\x1b`\xf6\xff\x8f\xc6\xadY\xf36o\'YY\xa6\xaf\xdb\xac\xfe\x9aP\xf6v\xbf6\xcf?x\xf8\x01j\x92\x16\x0e\xc7\x07_\xdb)\xdf\xde{8\xde\xfd\xda\x01\xc1\x87a\xfe\r\xf2\xfc\x03\x82\x00@\xf4\xe2{\xbdiy\xfe\xeb\x8e\xe1\x9bwin\xdf\xf7\x87\xb0\xfc\x87\x06\xaf\x0fv\xbf\xae\x84\x7f\xba{\xff\x03x\xe6\xfe=z\xfbk\xa7Z\xb6\x89_\x1f~\xed\xc4\xe2\x87a\xfe\rr\xfb\xd7%\xfd7\xc0\xed3J\xc0\xdf\xbb\xf7p\xef\xfe\x83\xdd\xaf+s?\'*\xfeC\xf9\xfd\xe1\xd7\r\x9av\x0f>$\xe8\xdc= \xff\xfbk3\xec\xf6\xdex\xf7k\xcb\xca\x87!\xfe\rr\xfb\xd7\xf5\x9d\xbf\x01n\xcf\x88\xd7\xef\xed\xed\xde\xdb}\xf8\xb5\x1d\x9a\xff\xcf\xe7kvG\x07\x0f\xbe\xaeK\xb9\x7fo\xb4\xfb\xe0C\x96)\x1f\xee\x8cv\xc8C\xf9\xfa|\xb8\xff\xe9\xc1\xfd\x0fI\xdb|\xf0\x08\xbe9A\xf8\xda\x92\xfc\r\x08\xc2\xff\xb7\x13\x97\xe7YQ_\xb7Y\x99\xa7\xe7U\xdd\xae\x97\xf9\xd7\x84\xb3\xbb\xf3\xb5\xad\xc0\xfdO?\x80\x89\xef\xef\x7f\xc0\xcb\xdb\xbb;{\x1f\xf0\xfa\x87a\xfe\rr\xff\xd7\xe5\xbbo\x80\xfb\x7f>\xaeN\xd1\x9a\xe8\xbd\xaf\xab\xf6\xef\xef~\x88\xeb\xf0\xe9\xbd\x07\xe3O\xbf~H\xba\xfb\xf0\x03\xde\xfe0\xcc\xbfAn\xff\xba\xc9\xe2o\x80\xdb\xff\xbf\xad\xeb\xaf\xaa\xf2\xfcC\xdc\x9d\x87_\x9b\xf2\xf7v>\x80uv\xf7\x0e> {H:~\xf7\x03^\xff0\xd4\xbfA\xae\xff\xba+\x83\xdf\x00\xd7\x7f\x03\x81\xed7\xc1\xf5_7\xe1\xfe\xd3\xd5\xdb\xbc\xa6\xa4\xfdO\xe7Wy\xf9u\x81\xec?\xf8\xda\xcc\xbf\xf7!^\xc2\xee\x83\xfd\xf1\x83\xfb_\xf7\xedm\xa4\xed\xbf\xf6\xdb\x1f\x86\xf97\xc8\xfb_\xd7\xb5\xfc\x06x\xff\xff\xdb\x1a\xbf\\O\xdf^\xa7\xcb\xfc*\xbd\xce\xbfv\xf6~\xf7k\xb3\xfe\xfe\x07)\xcf\xfd\x0f\x8an\xb7w?\xe0\xe5\x0fC\xfc\x1b\xe4\xfc\xaf\xbbn\xf2\xf3\x9e\xf3\xbf\x99\x04\xcf\xde\xce\xd7\xcd\xb0}z\xb0\xf3!\x0b\xa6\xa3\xdd\xbd{\x1f\xc0\x81\xfb\xfb{\xe3\x83\xde\xdb\xb7}\xfb\xc3p\xff\x06\xb9\xff\xeb\x06Y?\xef\xb9\xff\xaa(gi\xb3\xca\xcb\xaf\xed\xef<x\xf8u\x89OI\xd1\xfd\x0f\xd1\x9e\xbb\xa3\x87{\x0f> -y\xf0!/\x7f(\xf2\xdf \xf3\x7f]W\xfb\x1b`\xfeE\x91\xf1\xffI\t}]\xd7\xeb\xe7"\xb1\xf3\xb2\xcc\xae\'\xd5\xd7\xcd\xea|\xed\x85\xf2\xdd\x07c\xfa\xf5k\xbe\xfc`w\xfcp\xef\xeb\xbeL\xc9\xcf\x83\xaf\xfd\xf2\x07\xa1\xfd\r\xf2\xf9{\xac\x1e\x05o~\x03|\xfe\xff\xf1\xc0\xf6\x82\x12\x99mZ\xcf\x8be\xf55!\xec~m\xee\xd9\xdb\xfb\x105\xb9\xfb\xe9\x07\xb9\xf6\x14\xd5~\xfd\xb7?\x0c\xf3o\x90\xf1\xbf\xaek\xf9\r0\xfe\xffK\xbc\x9b\xaf\xcb\xf8\xdfHF\xe7\xc1\xd7^4|H\xab\x9e_?\xa3\xf8\xf0\xc1\x87x\xf6\xdb{\x1f\xd4\xf5\x87 \xfe\xcd\xb1\xfe\xd7^\x83\xf8\x06X\xff\xff%:\xffk\xbe\xfa\xe1\x8e\xfd\xde\xbd\xaf\x9bI\xbe\xff\xe0C\x14\xe7\xbd\x07\x1f\x92L\xdc\xde}\xf8!\x0b\xbd\x1f\x86\xfa7\xc8\xf8_W\xdb~\x03\x8c\xff\r\xe8\xfc\x9f\x0b\xa7\xfe\x83Wk\x1f~\xdd\xd1~X\xfa{wo\x7f|\xefk\xa7\xdey\xd5\xea\xd3\xaf\xfd\xfa\x87\xa1\xfe\r\xf2\xfb\xd7\xcd\x1c\x7f\x03\xfc^\xae\xabf\xbe\xce\x96\x17\xb3\xfck\xc2\xf8\xff$\xbb\xef\x8e\xee\x1d|]\xa2\xed\x8e\xf6\xef\xed\x7f\x80\x87\x80\xf7\x1f|\xc0r\xd5\xbd\x0fX\xacB\xdf\x1f\x82\xfb7\xc8\xf4_\xd7\xc0~\x03L\xff\r(\xf9\x9fC\xef\xa6\xc9\x96m\xf65\xdf%\x95\xf75\xdf\xdc\xbf\xbf\xf7\x01\xca\x92t\xfc\x07p\x1d\xeb\xf9\xaf\xff\xfa\x87\xa1\xfe\r\xb2\xfc\xd7M\x13~\x03,\x8fD%\xfe\xff\xff\xb1d\xe5\xd9bQ\xd5mV\xa6\xaf\xaaE\xb6\x9c~]\x1b\xb5{\xff\xeb\x0e\xfa\xd3O\xc7\x9f~m\xd6\xd9\'\xae\xfd\xda\xaaz{\xef\xfex\xe7k\xbf\xfdAx\x7f\x83,\xffs\xb84{\xbd^\xdf\'\xf2\xdf\xfb\xdak4\xff_f\xf8\x9d\xaf;\xe8\x87\xf7?`a\x08\x0c\xff\xb5\xfd\xaa\xed\xfb\xf7> Q\xffAx\x7fc\x0cO\xaf\x03\n\xbd\xf5^\xaf\xfd\xed\x7f\xf3?\xf97\xfd+\x7f\xeb\xbf\xf4\x17\xff}\xff\xc4\xd7\x04\xb0\xf7u\xe5\xec\xff\x13\xaf\xed\xee\x8cv\x1f~\xdd \xe9\xfe\xfe\xe8\xe1\xce\xfd\xf1\xbd\xaf\xcd\x1c\xe4|\x8c\xf6\x1e\xec\x8dw\xef}]\x08\xdb\x0f\xee\xef\x1d\xec\x8f\x1f\xee|]\x00\x1f<\x06}\x8d~\x80\xab\xe9\x17\xfeI@\xbe\x0e\x14z\xeb\xbd^\xfb7\xff\xbd\xaf\xcd\xd7\x94\x86\xfc\x9ao\xfe\x7f\xe2\xb5OwF\xf7\xbe\xb6k\xf2\xe0\xfe\xc3\xd1\x1e-\x11=\xd8\xff\xba\\\xf1`\x87 \x10g\xdf\xfb\xda\x10\xb6\xf7\x1f>|\xf8\xe0\x034\xef\x87\x0fB_\xa3\x1f`i\xfa\x85\x7f\x12\x90\xf7\x82\xb2\xfb\xe0\xeb\x1a\xcco\xc0S\xf9\xffv\xb6}F]W\xcb\xf4mAI\xa4j\xf15\x81\xdc\xff\xba\xe9\x80\xdd\xdd\x0fY\xeb\xd9\xdd9\xf8\x80\xb7\xb7?$\xdb\xfea\x88o\xf0X\xde\x0f\xd0\xee\x83\xaf\xcbr\xdf\x00\xe3g\xc4\xf6\xf7\xf6v\xef\xed><8\xf8\x9a@~\x0e\x19\xbf\xad\x8bU\x99\xa7mq\x91\xd7_w\xa1\xe9\xde\x88V\xda\xbf\xe6\xbb\x0fvG;\x1f\xc4D\x0f\xef\x93[\xf1!k>{\xfb\x07\x07\x0f>\x00\x81\x0f\x1e\xc17(\x06_\x97\x01\xbf\x011\xf8\x7fI>\xf2\xeb\xf2\xf0\x05e\xe3\xdb\xb4\x9e\x17\xcb\xeakB\xf8\xfa\xda\x7f\xe7C\x96p\xf6\x89\xf7\xbe\xfe\xdb\xf7>\xa8\xef\x0f\xc3\xfc\x1b\xe4\xfb\x87\x04\x01\x80\xe8\xc5\xf7z\xf3\x1b\xe0\xfb\xffo\xfb=\x8b\xac\xa1\x0f\xd3\xe9<_~\xdc\xa4\xe7\x94\xb6Y/\xbfv\xbe\xe6k\xbe\xb7\xf3\x01A\xe5\x87(\xfe\xed\x0f\xeb\xf8\xeb\xbf\xfb\xcd1\xfe\xd7\xceS}\x03\x8c\x9f5\xbb\xf7\xee?\xf8\xda\xca\xfe\xe7"1\xf9\xba\xcd\x9ayZ\x9d\xa7\xed<O\xdf\x14m\xb6\xfc\xba\xe6\xe2\xfe\xd7\x95\xf5\xbd\xbd\x83\x0f`\xd9{{\x0f? N%\xcb\xfc\x01o\x7f\x18\xe6\xdf \xcf\x7f]\x8e\xfb\x06x\xfe\xff%N\xce\xd7|uQ-\xdf\xe6\xd7\xe9"\x9b-\xf3\xe6ks\xfe\xd7\xb5\xb5\x94\x19\xa7_\xbf\xee\xcb;\x1f\xb0\x14\xb4\xfd!\xde\xf9\x07\xa1\xfd\x8dq=\xbd\x0e(\xf4\xd6{\xbd\xf6\xc19\xf9\xaf\x9bP\xfa\xff\xc4k\xf7F\xfb\xfb_\xd7i\xa7\xa8\xef\xfe\xee\xbd\x0fP\x88\x0f?\x1d\x1dP\xdc\xfa\xf5\x19\xf3\xc3\xd3\x96\x1f:\x04}\x8d~\x80\xa5\xe9\x17\xfeI@\xbe\x0e\x14z\xeb\xbd^\xfbQB~\xe8\xb5\x1f%\xe4?|\x10\xfa\x1a\xfd\x00K\xf3/\xd9\xa4\xcc\xe9\xf7\xc7\xcd*[\xa6\xc5\xec\xb3\x8f\xf9\x93\xdf\x7f\x95]\xe4\xcf\xaa\x8a@|Lo\xe1Kj\x84\xff\xa8G~\xe8\xc3|\xda\x16\x15>\xa7?\xe9\xefYqI\xbf?\xbe;\xa9f\xd7\xfc\xcb\xbc]\x94G\xbfq\xf2\xff\x00\xf9\xe8\xc2I\xf5\x14\x03\x00'
            print('0html', html.decode('utf-8', errors="replace"))
            # self.text1_2.insert(INSERT, html)

            gziper = gzip.decompress(html)#html.decode('utf-8', errors="replace")#
            print(gziper)
            soup1 = BeautifulSoup(gziper, "html.parser")
            print(soup1)
            ul2 = soup1.find_all('tr')
            print(ul2, len(ul2))
            mylist = []
            for tr in ul2:
                td = tr.find_all('th')
                if len(td) > 2:
                    print(td[2].text)
                    tmpdata = td[2].text[int(self.e1_2.get()):]
                    if td[0].text.isdigit() and tmpdata not in self.gallformatdata_2:
                        # mylist.append(td[2].text)

                        self.text1_2.insert(INSERT, tmpdata+'\n')
                        self.gallformatdata_2.append(tmpdata)
            # jsondata = json.loads(html)  # .text
            print('self.gallformatdata_2', self.gallformatdata_2)
            showinfo('Yes', '数据获取完毕,总计'+str(len(self.gallformatdata_2)))
            #             # # # text.delete(1.0, END)
            # if jsondata['code'] == "1" and jsondata['message'] == "success" :
            #     if jsondata['data'] == []:
            #         print('数据为空')
            #         showinfo('Yes', '数据获取完毕')
            #     else:
            #         self.gdata_1 = jsondata['data']
            #
            #         # print(jsondata['data'])
            #         # text.insert(INSERT, gdata)
            #         for d in self.gdata_1:
            #             username = d['username']
            #             if username not in self.galldata_1:
            #                 self.galldata_1.append(username)
            #                 tmpdata = [username[int(self.e1_1.get()):],d['validbetamount']]
            #                 self.gallformatdata_1.append(tmpdata)
            #                 # if len(gallformatdata)>=100:
            #                 #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
            #                 #     break
            #                 self.text1_1.insert(INSERT, username[int(self.e1_1.get()):]+','+str(d['validbetamount']) + '\n')
            #             else:
            #                 for t in self.gallformatdata_1:
            #                     if t[0]== username[int(self.e1_1.get()):] and t[1]<d['validbetamount'] :
            #                         t[1] = d['validbetamount']
            #         # if len(gallformatdata) >= 100:
            #         #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
            #         # else:
            #         self.gethtmldata1(page + 1)
            # else:
            #     self.text1_1.insert(INSERT, html)
        # else:
        #     showinfo('No', '试用期结束，请联系guoff.taobao.com')

    def gethtmldata3(self, page=1):
        self.prcesstext_3.set('正在抓取数据：第' + str(page) + '页，已抓取' + str(len(self.gallformatdata_3)) + '条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date', end_date, 'datetimenowTime', datetimenowTime, 'begin_date', begin_date)
        import time
        t = self.e3_3.get()  # 截至日期
        # 将其转换为时间数组
        timeStruct = time.strptime(t, "%Y-%m-%d")
        # 转换为时间戳:
        timeStamp = int(time.mktime(timeStruct))
        print(timeStamp)
        timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        print(timeStamp7)
        # timeStamp = 1511515800
        localTime = time.localtime(timeStamp7)
        strTime = time.strftime("%Y-%m-%d", localTime)
        print(strTime)
        t1 = strTime
        pagenum = 3000
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'}
        headers = {
            'Accept': '*/*',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Connection': 'keep-alive',
            'Content-Length': '403',
            'Content-Type': 'text/xml',
            'Cookie': self.e2_3.get(),  # 'JSESSIONID=642147684B3DDA81C5BCD78E2780ED94',
            'Host': 'data.agingames.com',
            'Origin': 'https://data.agingames.com',
            'Referer': 'https://data.agingames.com/dspcms/home/BetRecord.htm?request_locale=zh_CN',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
            'X-Requested-With': 'XMLHttpRequest'
        }
        # Open the XML file.
        print(1212)
        # xml = '''<message type="request"><condition start="0" limit="200" MemberId="" RoundId="" BillId="" FromProfitBets="" ToProfitBets="" FromTime="2019-01-18 00:00:00" ToTime="2019-01-18 23:59:59" Order="billtime" By="DESC" GameplayType="" GameCurrencyType="" Num="200" Agent="" GameId="" PlatformType="DSP,AGQ,VIP,LED,EMA,AGNW" FZ="false" VID="" Devicetype="" Usertype="" Timezone="-4" IsHistory="false"/></message>'''

        # xml = '''<message type="request"><condition start="0" limit="200" MemberId="" RoundId="" BillId="" FromProfitBets="" ToProfitBets="" FromTime="'''+t+''' 00:00:00" ToTime="'''+t+''' 23:59:59" Order="billtime" By="DESC" GameplayType="" GameCurrencyType="" Num="200" Agent="" GameId="" PlatformType="DSP,AGQ,VIP,LED,EMA,AGNW" FZ="false" VID="" Devicetype="" Usertype="" Timezone="-4" IsHistory="false"/></message>'''
        xml = '''<message type="request"><condition start="''' + str(pagenum * (page - 1)) + '''" limit="''' + str(
            pagenum * (
                page)) + '''" FromTime="''' + t1 + ''' 00:00:00" ToTime="''' + t + ''' 23:59:59" Order="num_close" By="DESC" GameCurrencyType="" AgentName="bhaitian" AgentGrade="2" FromProfitBets="" ToProfitBets="" FromBets="" ToBets="" MemberId="" GroupByLoginLen="" Restrict2pm="false" Num="''' + str(
            pagenum) + '''" PlatformType="DSP,AGQ,VIP,LED,SLOT,EMA,AGNW,VIPB" FZ="false" Devicetype="0"/></message>'''
        print('xml', xml)
        r = requests.post('https://data.agingames.com/dspcms/home/MemberReport_searchMembers.htm?start=' + str(
            pagenum * (page - 1)) + '&limit=' + str(pagenum * (page)),
                          data=xml, headers=headers)

        print(r.content.decode('utf-8', errors="replace"))
        html = r.content.decode('utf-8', errors="replace")
        soup1 = BeautifulSoup(html, "html.parser")
        ul2 = soup1.find_all('record')
        print(ul2, len(ul2))
        # if len(ul2)==0:
        #     print('wanbi ')
        #     showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        #     return
        mylist = []
        # outlist = []
        overflag = False
        for r in ul2:
            xh = XMLHandler()
            import xml.sax as sax
            sax.parseString(r.encode(), xh)
            ret = xh.getDict()
            if 'errormsg' in ret:
                overflag = True
                break
                # return
            mylist.append(ret)
            print('ret', ret)
            if ret['memberid'] == '' or ret['memberid'] in ['小计(人民币)', '总计(人民币)']:
                continue
            username = ret['memberid'][int(self.e1_3.get()):]
            if username not in self.gallformatdata_3:
                # outlist.append(username)
                self.gallformatdata_3.append(username)
                self.text1_3.insert(INSERT, username + '\n')
            # d = [username, ret['gametype'], ret['betamount']]
            # mflag = True
            # for ml in outlist:
            #     if ml[0] == username:
            #         mflag = False
            #         if ml[2] < ret['betamount']:
            #             ml[2] = ret['betamount']
            #
            # if mflag and ret['username'] != '':
            #     outlist.append(d)
            #     self.text1_3.insert(INSERT, username+','+ret['gametype']+','+ret['betamount']+'\n')

            # pprint.pprint(ret)
            # print(ret)

        # print(len(mylist), mylist)
        # self.gallformatdata_3=outlist
        # print(len(self.gallformatdata_3), self.gallformatdata_3)
        if overflag:
            showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        else:
            self.gethtmldata3(page + 1)

    def gethtmldata3_new(self,page=1):
        self.prcesstext_3.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_3))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        import time
        t = self.e3_3.get() #截至日期
        # 将其转换为时间数组
        timeStruct = time.strptime(t, "%Y-%m-%d")
        # 转换为时间戳:
        timeStamp = int(time.mktime(timeStruct))
        print(timeStamp)
        timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        print(timeStamp7)
        # timeStamp = 1511515800
        localTime = time.localtime(timeStamp7)
        strTime = time.strftime("%Y-%m-%d", localTime)
        print('strTime',strTime)
        t1 = strTime
        pagenum = 3000
        overflag = False
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'} self.e2_3.get()
        headers = {
            'Accept': 'application/json, text/plain, */*',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Connection': 'keep-alive',
            'Content-Length': '338',
            'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
            'Cookie': self.e2_3.get(),
            'Host': 'data.agingames.com',
            'Origin': 'https://data.agingames.com',
            'Referer': 'https://data.agingames.com/memberreport',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
        }

        data1 = {
            'fromTime': self.e3_3.get()+' 00:00:00',
            'toTime': self.e3_4.get()+' 23:59:59',
            'memberId': '',
            'fz': 'false',
            'gameCurrencyType': '',
            'fromBets': '',
            'toBets': '',
            'fromProfitBets': '',
            'toProfitBets': '',
            'order': 'num_close',
            'by': 'DESC',
            'num': '200',
            'platformType': 'DSP,AGQ,VIP,LED,SLOT,EMA,VIPB,FIFA',
            'devicetype': '0',
            'groupByLoginLen': '',
            'groupPrefix': 'false',
            'page': str(page),
            'restrict2pm': 'false',
            'agentName': 'bhaitian'
        }
        print('data1',data1)#data=data,params json
        r = requests.post(url='https://data.agingames.com/memberreport/list',data=data1,headers=headers)
        print(r.text)
        jsondata = json.loads(r.text)  # .text
        # testjson = '{"code":"00000","message":"success","items":[{"currency":null,"cusAccount":null,"numClose":1888981,"totalAccount":900541928.210000,"username":"<span style=\"font-weight: bold; font-size:12px;\">總計(人民幣):</span>","validAccount":799617662.86,"platformtype":null,"accountEx":0,"cusAccountEx":0,"profitAmount":-8308907.91,"baccount":0,"aaccount":8308789.91,"eaccount":null,"daccount":null,"caccount":null}],"addition":{"totalCount":17509}}'
        # jsondata = json.loads('''{"code":"00000","message":"success","items":[{"currency":null,"cusAccount":null,"numClose":1888981,"totalAccount":900541928.210000,"username":"<span style=\"font-weight: bold; font-size:12px;\">總計(人民幣):</span>","validAccount":799617662.86,"platformtype":null,"accountEx":0,"cusAccountEx":0,"profitAmount":-8308907.91,"baccount":0,"aaccount":8308789.91,"eaccount":null,"daccount":null,"caccount":null}],"addition":{"totalCount":17509}}''')
        # print('html', html)
        # # text.delete(1.0, END)
        # if jsondata['code'] == "1" and jsondata['message'] == "success":

        if jsondata['code']!='00000':
            showinfo('No', '异常' + str(jsondata['message']))
            return False

        # else:
        gdata_1 = jsondata['items']
        # gdata_1 =
        print('gdata_1',len(gdata_1))
        if len(gdata_1)<=2:
            print('数据为空')
            # showinfo('Yes', '数据获取完毕')
            overflag = True
        else:
            for item in gdata_1:
                print('item',item)

                print('item',item['username'])
                username = item['username'][int(self.e1_3.get()):]
                if 'style="font-weigh' not in username and  username not in self.gallformatdata_3:
                    # outlist.append(username)
                    self.gallformatdata_3.append(username)
                    self.text1_3.insert(INSERT, username + '\n')


        if overflag:
            showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        else:
            self.gethtmldata3_new(page+1)

    def gethtmldata9(self,page=1):
        self.prcesstext_9.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_9))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        import time
        t = self.e3_9.get() #截至日期
        # 将其转换为时间数组
        timeStruct = time.strptime(t, "%Y-%m-%d")
        # 转换为时间戳:
        timeStamp = int(time.mktime(timeStruct))
        print(timeStamp)
        timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        print(timeStamp7)
        # timeStamp = 1511515800
        localTime = time.localtime(timeStamp7)
        strTime = time.strftime("%Y-%m-%d", localTime)
        print('strTime',strTime)
        t1 = strTime
        pagenum = 3000
        overflag = False
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'} self.e2_9.get()
        headers = {
            'Accept': 'application/json, text/plain, */*',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Connection': 'keep-alive',
            'Content-Length': '338',
            'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
            'Cookie': self.e2_9.get(),
            'Host': 'data.agingames.com',
            'Origin': 'https://data.agingames.com',
            'Referer': 'https://data.agingames.com/memberreport',
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
        }

        data1 = {
            'fromTime': self.e3_9.get()+' 00:00:00',
            'toTime': self.e3_4_9.get()+' 23:59:59',
            'memberId': '',
            'fz': '',
            'gameCurrencyType': '',
            'fromBets': '',
            'toBets': '',
            'fromProfitBets': '',
            'toProfitBets': '',
            'userType': 'formal',
            'order': 'username',
            'by':'',
            'num': '200',
            'page': str(page)
        }
        print('data1',data1)#data=data,params json
        r = requests.post(url='https://data.agingames.com/memberreport/hunt2list',data=data1,headers=headers)
        print(r.text)
        jsondata = json.loads(r.text)  # .text
        # testjson = '{"code":"00000","message":"success","items":[{"currency":null,"cusAccount":null,"numClose":1888981,"totalAccount":900541928.210000,"username":"<span style=\"font-weight: bold; font-size:12px;\">總計(人民幣):</span>","validAccount":799617662.86,"platformtype":null,"accountEx":0,"cusAccountEx":0,"profitAmount":-8308907.91,"baccount":0,"aaccount":8308789.91,"eaccount":null,"daccount":null,"caccount":null}],"addition":{"totalCount":17509}}'
        # jsondata = json.loads('''{"code":"00000","message":"success","items":[{"currency":null,"cusAccount":null,"numClose":1888981,"totalAccount":900541928.210000,"username":"<span style=\"font-weight: bold; font-size:12px;\">總計(人民幣):</span>","validAccount":799617662.86,"platformtype":null,"accountEx":0,"cusAccountEx":0,"profitAmount":-8308907.91,"baccount":0,"aaccount":8308789.91,"eaccount":null,"daccount":null,"caccount":null}],"addition":{"totalCount":17509}}''')
        # print('html', html)
        # # text.delete(1.0, END)
        # if jsondata['code'] == "1" and jsondata['message'] == "success":

        if jsondata['code']!='00000':
            showinfo('No', '异常' + str(jsondata['message']))
            return False

        # else:
        gdata_1 = jsondata['items']
        # gdata_1 =
        print('gdata_1',len(gdata_1))
        if len(gdata_1)<=2:
            print('数据为空')
            # showinfo('Yes', '数据获取完毕')
            overflag = True
        else:
            for item in gdata_1:
                print('item',item)

                print('item',item['username'])
                username = item['username'][int(self.e1_9.get()):]
                if 'style="font-weigh' not in username and  username not in self.gallformatdata_9:
                    # outlist.append(username)
                    self.gallformatdata_9.append(username)
                    self.text1_9.insert(INSERT, username + '\n')


        if overflag:
            showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_9)))
        else:
            self.gethtmldata9(page+1)


    def gethtmldata4(self,page=1):
        self.prcesstext_4.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_4))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        # t = self.e3_4.get() #截至日期
        # # 将其转换为时间数组
        # timeStruct = time.strptime(t, "%Y-%m-%d")
        # # 转换为时间戳:
        # timeStamp = int(time.mktime(timeStruct))
        # print(timeStamp)
        # timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        # print(timeStamp7)
        # # timeStamp = 1511515800
        # localTime = time.localtime(timeStamp7)
        # strTime = time.strftime("%Y-%m-%d", localTime)
        # print(strTime)
        # t1 = strTime
        pagenum = 3000
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'}
        headers = {
            'Accept': '*/*',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'en',
            'Connection': 'keep-alive',
            'Content-Length': '40',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'Cookie': self.e2_4.get(),#'_ga=GA1.2.786135343.1548160764; _gid=GA1.2.1677086332.1548160764; language=en; login=d196350; .ASPXAUTH=FE272FCDED0B4BA94704F30C0700FC5BC6C7A6F8FD3C8653CF1DACB1BE2F434C3784833209DD376E169A5F1BA3133ADDC07E45A8664C0B8CF5E976A3B2E56FC377E2578B2E33C1E87FFBAC33E70B966ED814EBDCEDA97FD4C97E636342BA1AB082D79A3F7B7D478D1E616297AE9D4E0727278EECCC7917331164982B9AB9DFEE886004E6612302458E86C875296DEFAF6CE226B72C30C334E74CD6408D513A5D299A0E21A3251D560E20CBE01589E406FDC4215CAD40924F45EDDA3715EEBF8B1B110988DF8839CA88E88C1BD1F019747DD99757E8F1E8B37AC2964D2DD74B208BE79DE648C5E2C279816D118A8CEF33E2D94EB951074DAFECF50DDC508F4927A13C0090947546C258DD760BB0C8B42B7C5D233F4384FC39DD1AADD6BA280A33C4B0B196F0C0B18FB4B9A4F33ED7DA3DC299A6C843D7E09A0151E187B8B7FF22202CDC1D63D85B69719573EA92B02073; TS018bbafe=01fca39a02ac15b8a53325001f325b8fb5699ea611d47daa448408369b1d86682392de096ecc5f04062f136b772907c62f013bd9d86413c3d67dc766763278d3bb0ab0adde',
            'Host': 'tegbo.totalegame.net',
            'Origin': 'https://tegbo.totalegame.net',
            'Referer': 'https://tegbo.totalegame.net/en/Agent/PlayersList',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
            'X-Requested-With': 'XMLHttpRequest'
        }
        # Open the XML file.
        # print(1212)
        # xml = '''<message type="request"><condition start="0" limit="200" MemberId="" RoundId="" BillId="" FromProfitBets="" ToProfitBets="" FromTime="2019-01-18 00:00:00" ToTime="2019-01-18 23:59:59" Order="billtime" By="DESC" GameplayType="" GameCurrencyType="" Num="200" Agent="" GameId="" PlatformType="DSP,AGQ,VIP,LED,EMA,AGNW" FZ="false" VID="" Devicetype="" Usertype="" Timezone="-4" IsHistory="false"/></message>'''

        # xml = '''<message type="request"><condition start="0" limit="200" MemberId="" RoundId="" BillId="" FromProfitBets="" ToProfitBets="" FromTime="'''+t+''' 00:00:00" ToTime="'''+t+''' 23:59:59" Order="billtime" By="DESC" GameplayType="" GameCurrencyType="" Num="200" Agent="" GameId="" PlatformType="DSP,AGQ,VIP,LED,EMA,AGNW" FZ="false" VID="" Devicetype="" Usertype="" Timezone="-4" IsHistory="false"/></message>'''
        # xml = '''<message type="request"><condition start="'''+str(pagenum*(page-1))+'''" limit="'''+str(pagenum*(page))+'''" FromTime="'''+t1+''' 00:00:00" ToTime="'''+t+''' 23:59:59" Order="num_close" By="DESC" GameCurrencyType="" AgentName="bhaitian" AgentGrade="2" FromProfitBets="" ToProfitBets="" FromBets="" ToBets="" MemberId="" GroupByLoginLen="" Restrict2pm="false" Num="'''+str(pagenum)+'''" PlatformType="DSP,AGQ,VIP,LED,SLOT,EMA,AGNW,VIPB" FZ="false" Devicetype="0"/></message>'''
        # print('xml',xml)
        data = {
            'sort': '',
            'page': str(page),
            'pageSize': '100',
            'group': '',
            'filter': ''
        }

        r = requests.post('https://tegbo.totalegame.net/en/Agent/PlayersListRead',
                          data=data, headers=headers)

        print(r.content.decode('utf-8', errors="replace"))
        html=r.content.decode('utf-8', errors="replace")
        jsondata = json.loads(html)  # .text
        # print('html', html)
        # # text.delete(1.0, END)
        # if jsondata['code'] == "1" and jsondata['message'] == "success":
        if jsondata['Data'] == []:
            print('数据为空')
            showinfo('Yes', '数据获取完毕')
        else:
            gdata_1 = jsondata['Data']

            # print(jsondata['data'])
            # text.insert(INSERT, gdata)
            for d in gdata_1:
                username = d['AccountNo'][int(self.e1_4.get()):]
                if username not in self.gallformatdata_4:
                    self.gallformatdata_4.append(username)
                    # tmpdata = [username[int(self.e1_1.get()):], d['validbetamount']]
                    # self.gallformatdata_1.append(tmpdata)
                    # if len(gallformatdata)>=100:
                    #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                    #     break
                    self.text1_4.insert(INSERT,username + '\n')
                # else:
                #     for t in self.gallformatdata_1:
                #         if t[0] == username[int(self.e1_1.get()):] and t[1] < d['validbetamount']:
                #             t[1] = d['validbetamount']
                # if len(gallformatdata) >= 100:
                #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                # else:
            self.gethtmldata4(page + 1)
        # if overflag:
        #     showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        # else:
        #     self.gethtmldata3(page+1)
    def gethtmldata5(self,page=1):
        self.prcesstext_5.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_5))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        # t = self.e3_5.get() #截至日期
        # # 将其转换为时间数组
        # timeStruct = time.strptime(t, "%Y-%m-%d")
        # # 转换为时间戳:
        # timeStamp = int(time.mktime(timeStruct))
        # print(timeStamp)
        # timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        # print(timeStamp7)
        # # timeStamp = 1511515800
        # localTime = time.localtime(timeStamp7)
        # strTime = time.strftime("%Y-%m-%d", localTime)
        # print(strTime)
        # t1 = strTime
        pagenum = 3000
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'}
        headers = {
            'Accept': 'application/json, text/javascript, */*; q=0.01',
            'Accept-Encoding': 'gzip, deflate, sdch, br',
            'Accept-Language': 'zh-CN,zh;q=0.8',
            'Connection': 'keep-alive',
            'Content-Type': 'application/json',
            'Cookie': self.e2_5.get(),
            'Host': 'ky.ky026.com: 7988',
            'Referer': 'https://ky.ky026.com:7988/memberInfo',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0',
            'X-Requested-With': 'XMLHttpRequest'
        }

        data = {
            'sort': '',
            'page': str(page),
            'pageSize': '100',
            'group': '',
            'filter': ''
        }

        r = requests.get('https://ky.ky026.com:7988/memberinfo/GetList?limit=10&offset='+str((page-1)*10)+'&Accounts=&total=0&selstatus=-1&Proxyaccount=&hidserch=2&_=1552828269896', headers=headers)

        print(r.content.decode('utf-8', errors="replace"))
        html=r.content.decode('utf-8', errors="replace")
        jsondata = json.loads(html)  # .text
        # print('html', html)
        # # text.delete(1.0, END)
        # if jsondata['code'] == "1" and jsondata['message'] == "success":
        if jsondata['rows'] == []:
            print('数据为空')
            showinfo('Yes', '数据获取完毕')
        else:
            gdata_1 = jsondata['rows']

            # print(jsondata['data'])
            # text.insert(INSERT, gdata)
            for d in gdata_1:
                username = d['name'][int(self.e1_5.get()):]
                if username not in self.gallformatdata_5:
                    self.gallformatdata_5.append(username)
                    # tmpdata = [username[int(self.e1_1.get()):], d['validbetamount']]
                    # self.gallformatdata_1.append(tmpdata)
                    # if len(gallformatdata)>=100:
                    #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                    #     break
                    self.text1_5.insert(INSERT,username + '\n')
                # else:
                #     for t in self.gallformatdata_1:
                #         if t[0] == username[int(self.e1_1.get()):] and t[1] < d['validbetamount']:
                #             t[1] = d['validbetamount']
                # if len(gallformatdata) >= 100:
                #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                # else:
            self.gethtmldata5(page + 1)
        # if overflag:
        #     showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        # else:
        #     self.gethtmldata3(page+1)

    def gethtmldata6(self,page=1):
        self.prcesstext_6.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_6))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        # t = self.e3_6.get() #截至日期
        # # 将其转换为时间数组
        # timeStruct = time.strptime(t, "%Y-%m-%d")
        # # 转换为时间戳:
        # timeStamp = int(time.mktime(timeStruct))
        # print(timeStamp)
        # timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        # print(timeStamp7)
        # # timeStamp = 1511515800
        # localTime = time.localtime(timeStamp7)
        # strTime = time.strftime("%Y-%m-%d", localTime)
        # print(strTime)
        # t1 = strTime
        pagenum = 3000
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'} self.e2_6.get()
        headers1 = {
            'Host': 'backend.99play.com',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0',
            'Accept': '*/*',
            'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Accept-Encoding': 'gzip, deflate, br',
            'Referer': 'https://backend.99play.com/platform/UserAccount_Maint.aspx?_dc=1560685032296',
            'X-Ext-Net': 'delta=true',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'X-Requested-With': 'XMLHttpRequest',
            'Content-Length': '888',
            'Connection': 'keep-alive',
            'Cookie': self.e2_6.get()
        }
        #'page': str(page),
        print('str(page)',str(page))
        data1 = {
            'selectCompany':'a03',
            '_selectCompany_state':'[{"value":'+self.e3_6.get()+',"text":"a03","index":'+str(page-1)+'}]',
            'txtSearch':'',
            '__EVENTTARGET':'ResourceManager1',
            '__EVENTARGUMENT':'selectCompany|event|Select',
            '__VIEWSTATE':'Pi6FtzpSQ/iOn8wakhbHZ/Ep/DfT3Le6IEWBvBQQ2Dwb7p4nBJa+GycQ9DYTZ6fP044y9b4NgUVPotlxE5gkTqF0IjZ0oMWyL2kbcZtnpOZIi1UIfEtHApchH5wa5ouzPKcKBpHeQoTi26SuQXE4hMrcl8L6aJP+nU24KyL67J9ERqzMFfZgOIg1t9tmKascw9taJO9fydzyQQMAc8T0XDptgKIM24XhE347y5Ma7tU6ZPv/HAsiK4I0K20PoqCFL8FllYV73HRU1zcCiDPOZYJl8wZoii03jVjj0fZwudfRXwkTcn985W93pKaPEWbV2iJ4U+p170qqWM40okonP0H8uYQm+W15QnJsEfdIBYwQQpPerOf9H6INP4aKWNAVYd0v3y+lwwdQ0K2+16inF3FlV08BdPxt9iFM0az0LLz8yz1IE0DGtZu91BQQkMiOEmWSxw==',
            '__VIEWSTATEGENERATOR':'2A71AF9F',
            '__EVENTVALIDATION':'GACLak7x0oScnN5fAaRzqKM9Tq8xhp2HULF4ns8VNH3BR27qElXbt2mlpcGPdh6amqYqawMw0Mj3WkcpYjV7lErqr5L2roM+4iXAtD9LZhlphfr7',
            'FormatType':'',
            'RowSelectionModel1':''
        }
        print('data1',data1)
        r = requests.post(url='https://backend.99play.com/platform/UserAccount_Maint.aspx?_dc=15606850322961',
                          data=data1, headers=headers1)
        print('1111htmlr', r.text)
        #print(r.content.decode('utf-8', errors="replace"))
        html=r.text #r.content.decode('utf-8', errors="replace") App.Store1.proxy.data =  ;App.Store1
        begin = html.index('App.Store1.proxy.data =')
        end = html.index(';App.Store1.load();')
        print('begin end',begin,end)
        rpstr=html[begin+23:end].replace('\\"','"')
        print('rpstr',rpstr)
        jsondata = json.loads(rpstr)  # .text
        print('html', jsondata)
        print('htmlscript', len(jsondata))
        # # text.delete(1.0, END)
        # if jsondata['code'] == "1" and jsondata['message'] == "success":
        if len(jsondata) == 0:
            print('数据为空')
            showinfo('Yes', '数据获取完毕')
        else:
            # gdata_1 = jsondata['rows']

            # print(jsondata['data'])
            # text.insert(INSERT, gdata)
            for d in jsondata:
                username = d['LoginAccount'][int(self.e1_6.get()):]
                if username not in self.gallformatdata_6:
                    self.gallformatdata_6.append(username)
                    # tmpdata = [username[int(self.e1_1.get()):], d['validbetamount']]
                    # self.gallformatdata_1.append(tmpdata)
                    # if len(gallformatdata)>=100:
                    #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                    #     break
                    self.text1_6.insert(INSERT,username + '\n')
                # else:
                #     for t in self.gallformatdata_1:
                #         if t[0] == username[int(self.e1_1.get()):] and t[1] < d['validbetamount']:
                #             t[1] = d['validbetamount']
                # if len(gallformatdata) >= 100:
                #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                # else:
            # self.gethtmldata6(page + 1)
        # if overflag:
        #     showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        # else:
        #     self.gethtmldata3(page+1)

    def gethtmldata7(self,page=1):
        self.prcesstext_7.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_7))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        # t = self.e3_7.get() #截至日期
        # # 将其转换为时间数组
        # timeStruct = time.strptime(t, "%Y-%m-%d")
        # # 转换为时间戳:
        # timeStamp = int(time.mktime(timeStruct))
        # print(timeStamp)
        # timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        # print(timeStamp7)
        # # timeStamp = 1511515800
        # localTime = time.localtime(timeStamp7)
        # strTime = time.strftime("%Y-%m-%d", localTime)
        # print(strTime)
        # t1 = strTime
        pagenum = 3000
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'} self.e2_7.get()
        headers1 = {
            'Accept':'application/json, text/javascript, */*; q=0.01',
            'Accept-Encoding':'gzip, deflate, br',
            'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',
            'Connection':'keep-alive',
            'Content-Length':'60',
            'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
            'Cookie':self.e2_7.get(),
            'Host':'admin.wmcasino888.com',
            'Origin':'https://admin.wmcasino888.com',
            'Referer':'https://admin.wmcasino888.com/User/Index',
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',
            'X-Requested-With':'XMLHttpRequest'
        }
        #'page': str(page),
        print('str(page)',str(page))
        data1 = {
            'sEcho': '4',
            'iDisplayStart': str((page-1)*50),
            'iDisplayLength': '50',
            'sSearch': '',
            'format': '1'
        }
        print('data1',data1)
        r = requests.post(url='https://admin.wmcasino888.com/User/UsersPaging',
                          data=data1, headers=headers1)
        print('1111htmlr', r.text)
        #print(r.content.decode('utf-8', errors="replace"))
        html=r.text #r.content.decode('utf-8', errors="replace") App.Store1.proxy.data =  ;App.Store1
        # begin = html.index('App.Store1.proxy.data =')
        # end = html.index(';App.Store1.load();')
        # print('begin end',begin,end) #[begin+23:end].
        jsondata = json.loads(html)
        print('jsondata',jsondata['data'])

        rpstr=jsondata['data'].replace('\\"','"')
        print('rpstr',rpstr)
        jsondata = json.loads(rpstr)  # .text
        print('html', jsondata)
        print('htmlscript', len(jsondata))
        # # text.delete(1.0, END)
        # if jsondata['code'] == "1" and jsondata['message'] == "success":
        if len(jsondata) == 0:
            print('数据为空')
            showinfo('Yes', '数据获取完毕')
        else:
            # gdata_1 = jsondata['rows']

            # print(jsondata['data'])
            # text.insert(INSERT, gdata)
            tmpi = 0
            reinfo = 0
            for d in jsondata:
                tmpi=tmpi+1
                username = d[0][int(self.e1_7.get()):]
                if username not in self.gallformatdata_7:
                    self.gallformatdata_7.append(username)
                    # tmpdata = [username[int(self.e1_1.get()):], d['validbetamount']]
                    # self.gallformatdata_1.append(tmpdata)
                    # if len(gallformatdata)>=100:
                    #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                    #     break
                    self.text1_7.insert(INSERT,username + '\n')
                else:
                    reinfo=reinfo+1

            if reinfo == tmpi:
                print('数据为空')
                showinfo('Yes', '数据获取完毕')
            else:
                #     for t in self.gallformatdata_1:
                #         if t[0] == username[int(self.e1_1.get()):] and t[1] < d['validbetamount']:
                #             t[1] = d['validbetamount']
                # if len(gallformatdata) >= 100:
                #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                # else:
                self.gethtmldata7(page + 1)
        # if overflag:
        #     showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        # else:
        #     self.gethtmldata3(page+1)
    def gethtmldata8(self,page=1):
        self.prcesstext_8.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_8))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        # t = self.e3_8.get() #截至日期
        # # 将其转换为时间数组
        # timeStruct = time.strptime(t, "%Y-%m-%d")
        # # 转换为时间戳:
        # timeStamp = int(time.mktime(timeStruct))
        # print(timeStamp)
        # timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        # print(timeStamp7)
        # # timeStamp = 1511515800
        # localTime = time.localtime(timeStamp7)
        # strTime = time.strftime("%Y-%m-%d", localTime)
        # print(strTime)
        # t1 = strTime
        pagenum = 3000
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'} self.e2_8.get()
        headers1 = {
            'Accept':'application/json, text/plain, */*',
            'Accept-Encoding':'gzip, deflate',
            'Accept-Language':'zh-CN,zh;q=0.9',
            'Connection':'keep-alive',
            'Content-Length':'421',
            'Content-Type':'application/json;charset=UTF-8',
            'Cookie':self.e2_8.get(),
            'Host':'tgpgateway.com',
            'Origin':'http://tgpgateway.com',
            'Referer':'http://tgpgateway.com/',
            'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
            'x-anticsrf-token':self.e3_8.get()
        }
        #'page': str(page),"a01"
        print('str(page)',str(page),headers1)
        data1 = {
    "brandCodes": [
        self.e4_8.get()
    ],
    "brandName": "",
    "currency": "",
    "excludeTestPlayer": "false",
    "externalPlayerId": "",
    "licenseeCodes": [],
    "licenseeName": "",
    "orderBy": "ascending",
    "page": page,
    "playerTypes": "7",
    "playercode": "",
    "playerid": "",
    "playerscount": "50",
    "playersorder": "asc",
    "playerspage": "1",
    "playerssearched": "1",
    "playerssort": "Username",
    "resellerCodes": [],
    "resellerName": "",
    "rows": 50,
    "searched": "false",
    "sortBy": "Username",
    "username": ""
}
        print('data1',data1)
        r = requests.post(url='http://tgpgateway.com/api/players',
                          json=data1, headers=headers1)
        print('1111htmlr', r.text)
        #print(r.content.decode('utf-8', errors="replace"))
        html=r.text #r.content.decode('utf-8', errors="replace") App.Store1.proxy.data =  ;App.Store1
        # begin = html.index('App.Store1.proxy.data =')
        # end = html.index(';App.Store1.load();')
        # print('begin end',begin,end) #[begin+23:end].
        jsondata = json.loads(html)
        print('jsondata',jsondata['items'])

        # rpstr=jsondata['data'].replace('\\"','"')
        # print('rpstr',rpstr)
        # jsondata = json.loads(rpstr)  # .text
        print('html', jsondata)
        print('htmlscript', len(jsondata['items']))
        # # text.delete(1.0, END)
        # if jsondata['code'] == "1" and jsondata['message'] == "success":
        if len(jsondata['items']) == 0:
            print('数据为空')
            showinfo('Yes', '数据获取完毕')
        else:
            # gdata_1 = jsondata['rows']

            # print(jsondata['data'])
            # text.insert(INSERT, gdata)
            tmpi = 0
            reinfo = 0
            for d in jsondata['items']:
                tmpi=tmpi+1
                username = d['username'][int(self.e1_8.get()):]
                if username not in self.gallformatdata_8:
                    self.gallformatdata_8.append(username)
                    # tmpdata = [username[int(self.e1_1.get()):], d['validbetamount']]
                    # self.gallformatdata_1.append(tmpdata)
                    # if len(gallformatdata)>=100:
                    #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                    #     break
                    self.text1_8.insert(INSERT,username + '\n')
                else:
                    reinfo=reinfo+1

            if reinfo == tmpi:
                print('数据为空')
                showinfo('Yes', '数据获取完毕')
            else:
                #     for t in self.gallformatdata_1:
                #         if t[0] == username[int(self.e1_1.get()):] and t[1] < d['validbetamount']:
                #             t[1] = d['validbetamount']
                # if len(gallformatdata) >= 100:
                #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                # else:
                self.gethtmldata8(page + 1)
        # if overflag:
        #     showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        # else:
        #     self.gethtmldata3(page+1)


    def gethtmldata10(self,page=1):
        self.prcesstext_10.set('正在抓取数据：第'+str(page)+'页，已抓取'+str(len(self.gallformatdata_10))+'条数据')
        import datetime
        end_date = datetime.datetime.strptime("2099-01-15", "%Y-%m-%d")
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 现在
        begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d %H:%M:%S")
        print('end_date',end_date,'datetimenowTime',datetimenowTime,'begin_date',begin_date)
        # t = self.e3_10.get() #截至日期
        # # 将其转换为时间数组
        # timeStruct = time.strptime(t, "%Y-%m-%d")
        # # 转换为时间戳:
        # timeStamp = int(time.mktime(timeStruct))
        # print(timeStamp)
        # timeStamp7 = timeStamp - 60 * 60 * 24 * 31
        # print(timeStamp7)
        # # timeStamp = 1511515800
        # localTime = time.localtime(timeStamp7)
        # strTime = time.strftime("%Y-%m-%d", localTime)
        # print(strTime)
        # t1 = strTime
        pagenum = 3000
        import requests
        # Set the name of the XML file.
        xml_file = "xxx.xml"

        # headers = {'Content-Type':'text/xml'} self.e2_10.get()
        headers1 = {
            'Accept':'application/json, text/javascript, */*; q=0.01',
            'Accept-Encoding':'gzip, deflate, br',
            'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8',
            'Connection':'keep-alive',
            'Content-Length':'60',
            'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
            'Cookie':self.e2_10.get(),
            'Host':'118cpd.com',
            'Origin':'https://admin.wmcasino888.com',
            'Referer':'http://118cpd.com/',
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',
            'X-Requested-With':'XMLHttpRequest'
        }
        #'page': str(page),
        print('str(page)',str(page))
        data1 = {
            'type': 'HY',
            'page': page,
            'accountFuzzy': 'false',
            'fullNameFuzzy': 'false',
            'online': 'false',
            'orderBy': 'u.add_time',
            'sort': 'false',
            'rows': 10,
        }
        print('data1',data1)
        r = requests.get(url='http://118cpd.com/api/user/query'+'?type=HY&accountFuzzy=false&fullNameFuzzy=false&online=false&orderBy=u.add_time&sort=DESC&page='+str(page)+'&rows=10',data=data1,headers=headers1)
        print('1111htmlr', r.text)
        #print(r.content.decode('utf-8', errors="replace"))
        html=r.text #r.content.decode('utf-8', errors="replace") App.Store1.proxy.data =  ;App.Store1
        # begin = html.index('App.Store1.proxy.data =')
        # end = html.index(';App.Store1.load();')
        # print('begin end',begin,end) #[begin+23:end].
        jsondata = json.loads(html)
        print('jsondata',jsondata['data'])

        rpstr=jsondata['data']#.replace('\\"','"')
        print('rpstr',rpstr)
        jsondata = rpstr#json.loads(rpstr)  # .text
        print('html', jsondata)
        print('htmlscript', len(jsondata))
        # # text.delete(1.0, END)
        # if jsondata['code'] == "1" and jsondata['message'] == "success":
        if len(jsondata) == 0:
            print('数据为空')
            showinfo('Yes', '数据获取完毕')
        else:
            # gdata_1 = jsondata['rows']

            # print(jsondata['data'])
            # text.insert(INSERT, gdata)
            tmpi = 0
            reinfo = 0
            for d in jsondata:
                tmpi=tmpi+1
                username = d['account'][int(self.e1_10.get()):]
                userlist = []
                userlist.append(username)
                userlist.append(d['fullName'])
                userlist.append(d['rechCount'])
                userlist.append(d['rechMoney'])
                userlist.append(d['loginIp'])
                print('userlist',userlist)
                if userlist not in self.gallformatdata_10:
                    self.gallformatdata_10.append(userlist)
                    # tmpdata = [username[int(self.e1_1.get()):], d['validbetamount']]
                    # self.gallformatdata_1.append(tmpdata)
                    # if len(gallformatdata)>=100:
                    #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                    #     break
                    self.text1_10.insert(INSERT,str(userlist) + '\n')
                else:
                    reinfo=reinfo+1

            if reinfo == tmpi:
                print('数据为空')
                showinfo('Yes', '数据获取完毕')
            else:
                #     for t in self.gallformatdata_1:
                #         if t[0] == username[int(self.e1_1.get()):] and t[1] < d['validbetamount']:
                #             t[1] = d['validbetamount']
                # if len(gallformatdata) >= 100:
                #     text.insert(INSERT, '试用版只能抓取100条' + '\n')
                # else:
                self.gethtmldata10(page + 1)
        # if overflag:
        #     showinfo('Yes', '数据获取完毕,总计' + str(len(self.gallformatdata_3)))
        # else:
        #     self.gethtmldata3(page+1)

    def exp(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.galldata), self.gallformatdata)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata[i - 1])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "JDB" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear(self):
        # global gallformatdata, galldata, gdata
        # self.text1.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        # self.gallformatdata = []
        #doc2docx
        path=r"D:/do/201907/批量简历/处理失败/"
        file="姓名.doc"

        self.doc_to_docx(path,file)
        showinfo('Yes', '数据初始化完毕')

    def doc_to_docx(self,info,path,filelist):
        print('info',info)
        opfile = os.path.join(info,path)
        print('path',opfile)
        return ''
    def exp1(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.galldata_1), self.gallformatdata_1)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名','有效投注额']
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_1) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_1[i - 1][j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "VG" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')

    def clear1(self):
        # global gallformatdata, galldata, gdata
        self.text1_1.delete(1.0, END)
        self.gdata_1 = []
        self.galldata_1 = []
        self.gallformatdata_1 = []
        showinfo('Yes', '数据初始化完毕')

    def exp2(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_2), self.gallformatdata_2)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_2) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_2[i - 1])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "GITER" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear2(self):
        # global gallformatdata, galldata, gdata
        self.text1_2.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_2 = []
        showinfo('Yes', '数据初始化完毕')

    def exp3(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_3), self.gallformatdata_3)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']#,'游戏类型','投注额'
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_3) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_3[i - 1])#[j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "AGIN" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear3(self):
        # global gallformatdata, galldata, gdata
        self.text1_3.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_3 = []
        showinfo('Yes', '数据初始化完毕')
    def exp9(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_9), self.gallformatdata_9)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']#,'游戏类型','投注额'
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_9) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_9[i - 1])#[j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "AG捕鱼" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear9(self):
        # global gallformatdata, galldata, gdata
        self.text1_9.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_9 = []
        showinfo('Yes', '数据初始化完毕')

    def exp4(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_4), self.gallformatdata_4)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']#,'游戏类型','投注额'
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_4) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_4[i - 1])#[j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "MG" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def exp5(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_5), self.gallformatdata_5)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']#,'游戏类型','投注额'
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_5) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_5[i - 1])#[j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "KY" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear4(self):
        # global gallformatdata, galldata, gdata
        self.text1_4.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_4 = []
        showinfo('Yes', '数据初始化完毕')
    def clear5(self):
        # global gallformatdata, galldata, gdata
        self.text1_5.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_5 = []
        showinfo('Yes', '数据初始化完毕')


    def exp6(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_6), self.gallformatdata_6)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']#,'游戏类型','投注额'
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_6) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_6[i - 1])#[j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "VGS" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear6(self):
        # global gallformatdata, galldata, gdata
        self.text1_6.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_6 = []
        showinfo('Yes', '数据初始化完毕')
    def exp7(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_7), self.gallformatdata_7)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']#,'游戏类型','投注额'
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_7) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_7[i - 1])#[j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "WM" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear7(self):
        # global gallformatdata, galldata, gdata
        self.text1_7.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_7 = []
        showinfo('Yes', '数据初始化完毕')

    def exp10(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_10), self.gallformatdata_10)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['账号','姓名','充值次数','充值金额','登陆ip']#,'游戏类型','投注额'
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_10) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_10[i - 1][j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "118cp" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear10(self):
        # global gallformatdata, galldata, gdata
        self.text1_10.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_10 = []
        showinfo('Yes', '数据初始化完毕')

    def exp8(self):
        # fp = r"d:/temp/dataDir"
        # global gallformatdata, galldata
        # 导出数据
        print(len(self.gallformatdata_8), self.gallformatdata_8)
        # 创建一个excel工作簿，编码utf-8，表格中支持中文
        wb = xlwt.Workbook(encoding='utf-8')
        # 创建一个sheet
        sheet = wb.add_sheet('sheet 1')
        # 插入列名
        columns = ['用户名']#,'游戏类型','投注额'
        for i in range(len(columns)):
            sheet.write(0, i, columns[i])

        # 将数据插入表格
        for i in range(1, len(self.gallformatdata_8) + 1):
            for j in range(0, len(columns)):
                sheet.write(i, j, self.gallformatdata_8[i - 1])#[j])

        # 保存表格，并命名为‘xxxx’户.xls
        datetimenowTime = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')  # 现在
        # begin_date = datetime.datetime.strptime(datetimenowTime, "%Y-%m-%d%H:%M:%S")
        filename = "TGP" + datetimenowTime + ".xls"
        wb.save(filename)  # 导出数据
        nowdir = os.getcwd()
        newdir = os.path.join(nowdir, '导出数据')
        if not os.path.exists(newdir):
            os.mkdir(newdir)
        shutil.move(filename, os.path.join(newdir, filename))
        showinfo('Yes', '数据导出完毕')
    def clear8(self):
        # global gallformatdata, galldata, gdata
        self.text1_8.delete(1.0, END)
        # self.gdata = []
        # self.galldata = []
        self.gallformatdata_8 = []
        showinfo('Yes', '数据初始化完毕')

    def createWidgets(self):
        self.top = self.winfo_toplevel()

        self.style = Style()

        self.TabStrip1 = Notebook(self.top)
        self.TabStrip1.place(relx=0.062, rely=0.071, relwidth=0.887, relheight=0.876)

        self.TabStrip1__Tab1 = Frame(self.TabStrip1)

        self.prcesstext = StringVar()
        self.prcesstext.set('准备执行')
        self.TabStrip1__Tab1Lbl = Label(self.TabStrip1__Tab1, textvariable=self.prcesstext)
        self.TabStrip1__Tab1Lbl.place(relx=0.1,rely=0.9)
        # self.CheckVar1 = IntVar()
        # self.C1 = Checkbutton(self.TabStrip1__Tab1, text="使用钱包余额抵扣", variable=self.CheckVar1, \
        #                  onvalue=1, offvalue=0)
        # self.C1.place(relx=0.1, rely=0)
        self.label1 = Label(self.TabStrip1__Tab1, text="登陆cookie：")#.grid(row=0, column=0, padx=15, pady=5) , font=("华康少女字体", 15), fg="blue"
        self.label1.place(relx=0.1, rely=0.1)
        # self.label2 = Label(self.TabStrip1__Tab1, text="注意事项：将执行文件放到简历文件夹内")#.grid(row=1, column=0, padx=15, pady=5) , font=("华康少女字体", 15), fg="red"
        # self.label2.place(relx=0.1, rely=0.2)
        # self.label2 = Label(self.TabStrip1__Tab1, text="支付cookie：")#.grid(row=1, column=0, padx=15, pady=5) , font=("华康少女字体", 15), fg="red"
        # self.label2.place(relx=0.1, rely=0.3)
        # self.label2 = Label(self.TabStrip1__Tab1, text="间隔时间s：")#.grid(row=1, column=0, padx=15, pady=5) , font=("华康少女字体", 15), fg="red"
        # self.label2.place(relx=0.1, rely=0.4)
        # label = Label(frame, text="抓取信息：", font=("华康少女字体", 15), fg="red").grid(row=7, column=0, padx=5, pady=1)

        self.e1 = Entry(self.TabStrip1__Tab1, foreground='blue', font=('Helvetica', '12'))
        # self.e2 = Entry(self.TabStrip1__Tab1, font=('Helvetica', '12', 'bold'))
        # self.e3 = Entry(self.TabStrip1__Tab1, font=('Helvetica', '12', 'bold'))
        # self.e3.insert(10, "")
        # self.e4 = Entry(self.TabStrip1__Tab1, font=('Helvetica', '12', 'bold'))
        # self.e4.insert(10, "2")
        self.e1.insert(10, "")

        # self.e2.insert(10, "")
        # e1.grid(row=0, column=1)
        # e2.grid(row=1, column=1)
        self.e1.place(relx=0.4, rely=0.1)
        # self.e2.place(relx=0.4, rely=0.2)
        # self.e3.place(relx=0.4, rely=0.3)
        # self.e4.place(relx=0.4, rely=0.4)
        self.hi_there1 = Button(self.TabStrip1__Tab1, text="简历目录", command=lambda :thread_it(self.selectpath)) #, font=("宋体", 15), width=6, command=self.gethtmldata
        self.hi_there1.place(relx=0.1, rely=0.5)
        #.grid(row=2, column=0, padx=15, pady=5)

        self.hi_there2 = Button(self.TabStrip1__Tab1, text="执行", command=lambda :thread_it(self.gethtmldata, 1))#, font=("宋体", 15), width=6
        self.hi_there2.place(relx=0.4, rely=0.5)
        # #.grid(row=2, column=1, padx=15,pady=5)
        self.hi_there3 = Button(self.TabStrip1__Tab1, text="doc转docx", command=self.dozhuanhuan)#, font=("宋体", 15), width=6
        self.hi_there3.place(relx=0.7, rely=0.5)
        #.grid(row=2, column=2, padx=15,pady=5)
        # self.hi_there.pack()
        # self.text1 = scrolledtext.ScrolledText(self.TabStrip1__Tab1, width=125, height=6) #, font=("华康少女字体", 15)
        #
        # # text.grid(row=3, column=0, padx=35, pady=5, columnspan=2)
        # self.text1.place(relx=0.1, rely=0.6)
        # self.TabStrip1.add(self.TabStrip1__Tab1, text='jl')

        # scroll = Scrollbar()
        # scroll.pack(side=RIGHT, fill=Y)
        # scroll.config(command=self.text1.yview)
        # self.text1.config(yscrollcommand=scroll.set)

        # self.text1['yscrollcommand'] = scroll.set
        # # for i in range(100):
        # #     lb.insert(END, str(i))
        # # self.text1.pack(side=LEFT)
        # scroll['command'] = self.text1.yview



class Application(Application_ui):
    #这个类实现具体的事件处理回调函数。界面生成代码在Application_ui中。
    def __init__(self, master=None):
        Application_ui.__init__(self, master)

if __name__ == "__main__":
    top = Tk()
    Application(top).mainloop()



